Sobes.tech
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.