Senior
Čo sú rozhrania v Go? Ako typy implementujú rozhrania?
sobes.tech AI
Odpoveď od AI
V jazyku Go je rozhranie súborom metód, ktoré opisujú správanie. Typ implementuje rozhranie, ak obsahuje všetky metódy deklarované v rozhraní, bez nutnosti explicitne uvádzať implementáciu rozhrania.
Toto sa nazýva nepriama implementácia rozhraní. Vďaka tomu je možné písať flexibilnejší a rozšíriteľnejší kód.
Príklad:
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) {
// implementácia čítania
return 0, nil
}
func main() {
var r Reader
f := File{}
r = f // File implementuje Reader
fmt.Println(r)
}
Tu, typ File implementuje rozhranie Reader, pretože má metódu Read s požadovanou podpisom.