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)
}