Junior — Middle
Is de structuur in Go compatibel met de Comparable-interface?
sobes.tech AI
Antwoord van AI
In Go is de interface Comparable geen ingebouwde standaard, maar wordt vaak begrepen als een interface met een vergelijkingsmethode, bijvoorbeeld:
type Comparable interface {
Compare(other interface{}) int // retourneert -1, 0, 1
}
Een structuur in Go is compatibel met de interface als deze alle methoden van die interface implementeert. Met andere woorden, als je structuur de Compare-methode met de juiste handtekening implementeert, is deze compatibel met Comparable.
Voorbeeld:
type MyStruct struct {
Value int
}
func (m MyStruct) Compare(other interface{}) int {
o, ok := other.(MyStruct)
if !ok {
return -2 // of foutafhandeling
}
if m.Value < o.Value {
return -1
} else if m.Value > o.Value {
return 1
}
return 0
}
// MyStruct implementeert nu Comparable
Als de Compare-methode niet is geïmplementeerd, is de structuur niet compatibel met de interface Comparable.