Junior — Middle
რა შედეგები შეიძლება გამოიწვიოს მონაცემთა სტრუქტურამ თუ ის არ ახორციელებს მოცემულ ინტერფეისს ობიექტზე ორიენტირებულ პროგრამირებაში?
sobes.tech AI
პასუხი AI-სგან
Go dilində interfeyslər qeyri-adi şəkildə 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, interfeyslərə uyğunluğu sərt şə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.