Junior — Middle
Millised tagajärjed tekivad, kui andmestruktuur ei rakenda antud liidest objektorienteeritud programmeerimises?
sobes.tech AI
Vastus AI-lt
Go keeles interfejsid implementeeritakse mitteotseselt: kui struktuur sisaldab kõiki interfeisi meetodeid, siis see seda implementeerib. Kui struktuur ei implemente antud interfeisi:
- Tõlgendaja annab vea, kui püüate seda struktuuri kasutada interfeisi tüüpi väärtusena.
- See ennetab jooksuaegseid vigu, kuna Go kontrollib rangelt vastavust interfeisidele kompileerimise ajal.
Näiteks, kui teil on interfeis:
type Reader interface {
Read(p []byte) (n int, err error)
}
Ja struktuur:
type MyStruct struct {}
// Puudub Read meetod, seega MyStruct ei implementeeri Readerit
MyStructi määramine Reader tüüpi muutujale põhjustab kompileerimisvea.
Seega, kui struktuur ei implementeeri interfeisi, ei saa seda kasutada seal, kus oodatakse seda interfeisi, mis aitab vältida loogilisi vigu programmis.