Sobes.tech
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:

  1. bandyti priskirti struktūros pavyzdį interfeiso tipo kintamajam — jei kompiliacija sėkminga, reiškia, kad struktūra įgyvendina interfeisą.
  2. 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.