Sobes.tech
Senior

Kas ir saskarnes Go? Kā tipi īsteno saskarnes?

sobes.tech AI

Atbilde no AI

Go valodā, interfeiss ir metožu kopums, kas apraksta uzvedību. Tips realizē interfeisu, ja tas satur visus interfeisā deklarētos metodes, bez nepieciešamības skaidri norādīt interfeisa realizāciju.

To sauc par netiešu interfeisa realizāciju. Pateicoties tam, var rakstīt elastīgāku un paplašināmāku kodu.

Piemērs:

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) {
    // lasīšanas realizācija
    return 0, nil
}

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

Šeit, tips File realizē interfeisu Reader, jo tam ir metode Read ar nepieciešamo parakstu.