Sobes.tech
Junior — Middle

Mi a különbség a Go nyelvben az interfész és mely tulajdonságait kell tudni?

sobes.tech MI

Válasz az MI-től

Go nyelven az interfész egy olyan metódusok halmaza, amelyeket egy típusnak meg kell valósítania ahhoz, hogy megfeleljen ennek az interfésznek. A Go nyelvű interfészek jellemzői:

  • Implicit megvalósítás: egy típus akkor tekinthető, hogy megvalósítja az interfészt, ha rendelkezik az összes metódussal, anélkül, hogy kifejezetten deklarálná.
  • Az interfészek a viselkedést írják le, nem az adatstruktúrát.
  • Üres interfész (interface{}) — metódus nélküli interfész, amely bármilyen típus értékét tartalmazhatja.
  • Az interfészek beágyazhatók, több interfész metódusait egyesítve.

Példa:

package main
import "fmt"

type Reader interface {
    Read(p []byte) (n int, err error)
}

type MyReader struct {}

func (r MyReader) Read(p []byte) (n int, err error) {
    // olvasási megvalósítás
    return 0, nil
}

func main() {
    var r Reader = MyReader{} // A MyReader implicit módon valósítja meg a Reader-t
    fmt.Println(r)
}