Sobes.tech
Junior — Middle

Mi a különbség a Go nyelvű interfész és más programozási nyelvek interfészei között?

sobes.tech MI

Válasz az MI-től

A Go nyelvben az interfészek eltérnek abban, hogy implicit módon működnek — a típusnak nem kell kifejezetten jeleznie, hogy megvalósítja az interfészt. Ha egy típus tartalmazza az összes metódust az interfészből, akkor automatikusan annak megvalósításának számít.

Ez különbözik sok más nyelvtől, ahol explicit módon kell bejelenteni, hogy egy osztály vagy típus megvalósít egy interfészt.

Példa:

package main
import "fmt"

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

type File struct {}

func (f File) Read(p []byte) (n int, err error) {
    // metódus implementáció
    return 0, nil
}

func main() {
    var r Reader
    var f File
    r = f // A File automatikusan megvalósítja a Reader-t
    fmt.Println(r)
}