Junior — Middle
Golang'dakı interfeyslər digər proqramlaşdırma dillərindəki interfeyslərlə müqayisədə nə fərq var?
sobes.tech Süni İntellekt
AI-dan cavab
Go dilində interfeyslər qeyri-şərti həyata keçirmə prinsipi ilə həyata keçirilir. Bu, bir növün, interfeysin tələb etdiyi bütün metodlara malikdirsə, onu kodda açıq şəkildə göstərməyə ehtiyac olmadan avtomatik olaraq interfeysi həyata keçirdiyi anlamına gəlir (Java və ya C# kimi dillərdə, interfeysin həyata keçirilməsini açıq şəkildə elan etmək lazımdır).
Bu, daha çevik və daha az bağlı kod yazmağa imkan verir, çünki növlər və interfeyslər bir-birindən birbaşa asılı deyil.
Nümunə:
package main
import "fmt"
type Reader interface {
Read(p []byte) (n int, err error)
}
type MyReader struct{}
func (r MyReader) Read(p []byte) (n int, err error) {
// oxuma tətbiqi
return 0, nil
}
func main() {
var r Reader = MyReader{} // qeyri-şərti interfeys tətbiqi
fmt.Println(r)
}
Həmçinin, Go-da sinif irsi yoxdur, interfeyslər çoxşaxəlilik və tərkib üçün istifadə olunur, bu da onları çox digər dillərdən fərqləndirir.