Sobes.tech
Junior — Middle

Kā noteikt, vai noteikta struktūra īsteno dotu interfeisu?

sobes.tech AI

Atbilde no AI

Go valodā interfeisa īstenošana tiek pārbaudīta netieši: ja tips satur visus interfeisā deklarētos metodes, tas automātiski īsteno šo interfeisu.

Lai noteiktu, vai struktūra īsteno doto interfeisu, jūs varat:

  1. Mēģināt piešķirt struktūras piemēru interfeisa tipa mainīgajam — ja kompilācija ir veiksmīga, tas nozīmē, ka struktūra īsteno interfeisu.
  2. izmantot statisku pārbaudi ar _var _:
var _ MyInterface = (*MyStruct)(nil)

Ja šis kods tiek kompilēts bez kļūdām, tas nozīmē, ka MyStruct īsteno MyInterface interfeisu.

Piemērs:

type MyInterface interface {
    DoSomething()
}

type MyStruct struct {}

func (m *MyStruct) DoSomething() {
    // īstenošana
}

// Interfeisa īstenošanas pārbaude
var _ MyInterface = (*MyStruct)(nil)

Tādējādi, Go valodā nav nepieciešams skaidri norādīt interfeisa īstenošanu — pietiek ar to, ka tiek īstenotas visas tā metodes.