Sobes.tech
Senior

Kas yra sąsajos Go? Kaip tipai įgyvendina sąsajas?

sobes.tech AI

Atsakymas iš AI

Go kalboje, sąsaja yra metodų rinkinys, aprašantis elgesį. Tipas įgyvendina sąsają, jei ji turi visas sąsajoje deklaruotas metodus, be aiškaus sąsajos įgyvendinimo nurodymo.

Tai vadinama nepastebimu sąsajų įgyvendinimu. Dėl to galima rašyti lankstesnį ir išplečiamesnį kodą.

Pavyzdys:

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) {
    // skaitymo įgyvendinimas
    return 0, nil
}

func main() {
    var r Reader
    f := File{}
    r = f // File įgyvendina Reader
    fmt.Println(r)
}

Čia, tipas File įgyvendina sąsają Reader, nes turi metodą Read su reikiama parašu.