Sobes.tech
Junior — Middle

Koja je razlika između interfejsa u jeziku Go i interfejsa u drugim programskim jezicima?

sobes.tech АИ

Одговор од АИ

U jeziku Go, interfejsi se razlikuju po tome što su nevidljivi — tip ne mora eksplicitno navesti da implementira interfejs. Ako tip sadrži sve metode interfejsa, automatski se smatra da ga implementira.

Ovo se razlikuje od mnogih drugih jezika, gde je potrebno eksplicitno deklarisati da klasa ili tip implementira interfejs.

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 metode
    return 0, nil
}

func main() {
    var r Reader
    var f File
    r = f // File automatski implementira Reader
    fmt.Println(r)
}