Junior — Middle
Kaip galima nustatyti, ar tam tikra struktūra įgyvendina duotąjį sąsają?
sobes.tech AI
Atsakymas iš AI
Go kalboje interfeiso įgyvendinimas yra netiesioginis tikrinamas: jei tipas turi visas interfeise deklaruotas funkcijas, jis automatiškai įgyvendina tą interfeisą.
Norint nustatyti, ar struktūra įgyvendina duotą interfeisą, galite:
- bandyti priskirti struktūros pavyzdį interfeiso tipo kintamajam — jei kompiliacija sėkminga, reiškia, kad struktūra įgyvendina interfeisą.
- naudoti statinę patikrą su _var _:
var _ MyInterface = (*MyStruct)(nil)
Jei šis kodas kompiliuojasi be klaidų, reiškia, kad MyStruct įgyvendina MyInterface interfeisą.
Pavyzdys:
type MyInterface interface {
DoSomething()
}
type MyStruct struct {}
func (m *MyStruct) DoSomething() {
// įgyvendinimas
}
// Interfeiso įgyvendinimo patikra
var _ MyInterface = (*MyStruct)(nil)
Taip, Go kalboje nėra būtina aiškiai nurodyti interfeiso įgyvendinimą — pakanka įgyvendinti visus jo metodus.