Sobes.tech
Junior — Middle

Go dilində interfeys ilə digər proqramlaşdırma dillərindəki interfeyslər arasındakı fərq nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Go dilində interfeyslər fərqlidir, çünki onlar qeyri-müəyyənidir — tip açıq şəkildə interfeysi həyata keçirməlidir. Əgər bir tip interfeysə aid bütün metodları ehtiva edirsə, avtomatik olaraq onun həyata keçirilməsi hesab olunur.

Bu, çox sayda digər dillərdən fərqlənir, burada sinif və ya tipin interfeysi həyata keçirdiyini açıq elan etmək lazımdır.

Nümunə:

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) {
    // metodun həyata keçirilməsi
    return 0, nil
}

func main() {
    var r Reader
    var f File
    r = f // File avtomatik olaraq Reader-i həyata keçirir
    fmt.Println(r)
}