Junior — Middle
Ar Go struktūra yra suderinama su Comparable sąsaja?
sobes.tech AI
Atsakymas iš AI
Go kalboje, Comparable sąsaja nėra įtraukta į standartinį paketą, tačiau dažnai ją supranta kaip sąsają su palyginimo metodu, pavyzdžiui:
type Comparable interface {
Compare(other interface{}) int // grąžina -1, 0, 1
}
Go struktūra yra suderinama su sąsaja, jei ji įgyvendina visas šios sąsajos metodus. Kitaip tariant, jei jūsų struktūra įgyvendina Compare metodą su reikiama signatūra, ji yra suderinama su Comparable.
Pavyzdys:
type MyStruct struct {
Value int
}
func (m MyStruct) Compare(other interface{}) int {
o, ok := other.(MyStruct)
if !ok {
return -2 // arba klaidos apdorojimas
}
if m.Value < o.Value {
return -1
} else if m.Value > o.Value {
return 1
}
return 0
}
// Dabar MyStruct įgyvendina Comparable
Jei Compare metodas nėra įgyvendintas, struktūra nėra suderinama su Comparable sąsaja.