Junior — Middle
Obyekt yönümlü proqramlaşdırmada verilən interfeysi həyata keçirməyən məlumat strukturu hansı nəticələrə gətirib çıxarır?
sobes.tech Süni İntellekt
AI-dan cavab
Go-da interfeysler qeyri-adi olaraq həyata keçirilir: əgər struktur bütün interfeys metodlarını ehtiva edirsə, onu həyata keçirir. Əgər struktur verilmiş interfeysi həyata keçirməzsə:
- Bu strukturun interfeys tipi kimi istifadə edilməyə çalışıldığında tərtibçi səhv verəcək.
- Bu, işləmə vaxtında səhvlərin qarşısını alır, çünki Go tərtib zamanı interfeyslərlə uyğunluğu ciddi şəkildə yoxlayır.
Məsələn, əgər sizdə aşağıdakı interfeys varsa:
type Reader interface {
Read(p []byte) (n int, err error)
}
Və struktur:
type MyStruct struct {}
// Read metodu yoxdur, ona görə də MyStruct Reader-i həyata keçirmir
MyStruct-ı Reader tipli dəyişənə təyin etməyə cəhd etmək tərtibçi səhvi ilə nəticələnəcək.
Beləliklə, əgər struktur interfeysi həyata keçirməzsə, onu bu interfeysin gözlənildiyi yerdə istifadə edə bilməzsiniz, bu da məntiqi səhvlərin qarşısını almağa kömək edir.