Junior — Middle
Structura în Go este compatibilă cu interfața Comparable?
sobes.tech AI
Răspuns de la AI
În Go, interfața Comparable nu face parte din standardul încorporat, dar este adesea înțeleasă ca o interfață cu o metodă de comparare, de exemplu:
type Comparable interface {
Compare(other interface{}) int // returnează -1, 0, 1
}
O structură în Go este compatibilă cu interfața dacă implementează toate metodele acesteia. Adică, dacă structura ta implementează metoda Compare cu semnătura necesară, ea este compatibilă cu Comparable.
Exemplu:
type MyStruct struct {
Value int
}
func (m MyStruct) Compare(other interface{}) int {
o, ok := other.(MyStruct)
if !ok {
return -2 // sau tratare a erorii
}
if m.Value < o.Value {
return -1
} else if m.Value > o.Value {
return 1
}
return 0
}
// MyStruct acum implementează Comparable
Dacă metoda Compare nu este implementată, structura nu este compatibilă cu interfața Comparable.