„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Eine Schnittstelle schreiben

Eine Schnittstelle schreiben

Gepostet am 2025-02-06
Durchsuche:345

A interface Write

In Go sind Schnittstellen von grundlegender Bedeutung für die Förderung von Polymorphismus und Abstraktion. Sie fungieren als Verträge, die eine Reihe von Methoden festlegen, die ein Typ implementieren sollte, sodass verschiedene Typen einheitlich und flexibel behandelt werden können.

Schnittstellen

In Go ist eine Schnittstelle ein Typ, der eine Reihe von Methoden definiert, ohne sie zu implementieren. Es gibt nur die Signaturen der Methoden an, die ein Typ die Schnittstelle erfüllen muss. Auf diese Weise können verschiedene Typen einheitlich behandelt werden, solange sie die durch die Schnittstelle definierten Methoden implementieren. Schnittstellen fördern Polymorphismus und Abstraktion und erleichtern die Schaffung von flexiblen und wiederverwendbaren Code.

IO.Writer

Die IO.Writer -Schnittstelle ist eine der am häufigsten verwendeten in GO. Verschiedene Typen implementieren diese Schnittstelle, einschließlich OS.File, bytes.Buffer und net.Conn. Dadurch können verschiedene Arten von Schreibdestinationen einheitlich und flexibel behandelt werden.

// writer ist die interface, die die grundlegende schreibende operation zusammenfasst. Geben Sie die Autor -Schnittstelle {ein Schreiben (p [] byte) (n int, erral error) }

// Writer é a interface que encapsula a operação básica de escrita.
type Writer interface {
    Write(p []byte) (n int, err error)
}
    N: Es ist die Anzahl der geschriebenen Bytes.
  • ERR: Es ist ein Fehlertypwert, der angibt, ob beim Schreiben Fehler auftreten.
    • Jeder Typ, der die Schreibmethode mit dem richtigen Abonnement implementiert, wird als IO.Writer betrachtet.
    • Warum der.Writer IO.Writer?

Abstraktion

: Ermöglicht Sie, verschiedene Arten von Schreibdestinationen gleichmäßig zu behandeln.

Flexibilität
    : Erleichtert die Erstellung generischer Methoden, die jede Art akzeptieren, die die IO.Writer -Schnittstelle implementiert.
  • codes reusse : Die Verwendung von io.writer kann mit verschiedenen Arten von Zielen wie Dateien, Sockets, Buffers usw. wiederverwendet werden
  • test : Ermöglicht Ihnen, Mocks und Stubs zu erstellen, um Code isoliert zu testen.
  • Beispiel Paket main importieren ( "Fmt" "Du" "io" ) Func main () { var w io.writer = os.stoutout // w ist vom IO.Writer -Typ N, err: = w.write ([] byte ("Hallo, Welt!")))) Wenn er! = nil { fmt.println ("Fehler:", ähm) } fmt.printf ("\ bbytes Schriften: %b", n) }
  • /tmp ➜ rennen Sie example_io_writer.go Hallo Welt! Bytes Schriften: 1101 Abschluss
Die IO.Writer -Schnittstelle ist eine der häufigsten Schnittstellen in GO. Dies erleichtert die Wiederverwendung von Code, die Erstellung generischer Methoden und das Schreiben von Tests. Darüber hinaus fördert die IO.Writer -Schnittstelle das Polymorphismus, sodass verschiedene Typen, die die Schnittstelle implementieren, austauschbar verwendet werden. Es ist weithin in mehreren Standard -GO -Sprachpaketen wie den Bytes implementiert, unter anderem seine Vielseitigkeit und Bedeutung im GO -Ökosystem.

Referenzen

package main

import (
  "fmt"
  "os"
  "io"
)

func main() {
  var w io.Writer = os.Stdout // w é do tipo io.Writer

  n, err := w.Write([]byte("Hello, World!"))
  if err != nil {
    fmt.Println("Erro:", err)
  }

  fmt.Printf("\bBytes escritos: %b", n)
}
https://pkg.go.dev/[email protected]#file.writal* https://pkg.go.dev/log/slog/internal/buffer#buffer.write**&&&] https://pkg.go.dev/[email protected]#conn*&&&]
/tmp ➜ go run example_io_writer.go
Hello, World!
Bytes escritos: 1101
Freigabeerklärung Dieser Artikel wird unter: https://dev.to/fabianoflorentino/a-interface-write-11c5?1 reproduziert.
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3