Junior — Middle
Kas Go struktuur on ühilduv Comparable liidesega?
sobes.tech AI
Vastus AI-lt
Go keeles ei ole vaikimisi sisseehitatud liidest Comparable, kuid seda mõistetakse sageli kui liidest, millel on võrdlusmeetod, näiteks:
type Comparable interface {
Compare(other interface{}) int // tagastab -1, 0, 1
}
Go struktuur on liidesega ühilduv, kui see rakendab kõiki selle liidese meetodeid. Teisisõnu, kui teie struktuur rakendab meetodi Compare nõutava signatuuriga, on see ühilduv liidesega Comparable.
Näide:
type MyStruct struct {
Value int
}
func (m MyStruct) Compare(other interface{}) int {
o, ok := other.(MyStruct)
if !ok {
return -2 // või vea töötlemine
}
if m.Value < o.Value {
return -1
} else if m.Value > o.Value {
return 1
}
return 0
}
// MyStruct nüüd rakendab Comparable
Kui meetod Compare ei ole rakendatud, siis struktuur ei ole liidese Comparablega ühilduv.