Senior
Šta su interfejsi u Go? Kako tipovi implementiraju interfejse?
sobes.tech АИ
Одговор од АИ
U jeziku Go, interfejs je skup metoda koje opisuju ponašanje. Tip implementira interfejs ako sadrži sve metode deklarisane u interfejsu, bez potrebe da eksplicitno navodi implementaciju interfejsa.
Ovo se naziva neizrazita implementacija interfejsa. Zahvaljujući tome, može se pisati fleksibilniji i proširiviji kod.
Primer:
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) {
// implementacija čitanja
return 0, nil
}
func main() {
var r Reader
f := File{}
r = f // File implementira Reader
fmt.Println(r)
}
Ovde, tip File implementira interfejs Reader jer poseduje metodu Read sa potrebnom potpisom.