Sobes.tech
Junior — Middle

Kuo skiriasi Go kalbos sąsaja nuo kitų programavimo kalbų sąsajų?

sobes.tech AI

Atsakymas iš AI

Go kalboje sąsajos ypatumas yra tai, kad jos yra neaiškios — tipas neturi aiškiai nurodyti, kad jis įgyvendina sąsają. Jei tipas turi visas sąsajos metodus, jis automatiškai laikomas jos įgyvendinimu.

Tai skiriasi nuo daugelio kitų kalbų, kuriose reikia aiškiai deklaruoti, kad klasė ar tipas įgyvendina sąsają.

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

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