Junior — Middle
Структурата в Go съвместима ли е с интерфейса Comparable?
sobes.tech AI
Отговор от AI
В езика Go интерфейсът Comparable не е част от вградения стандарт, но често се разбира като интерфейс с метод за сравнение, например:
type Comparable interface {
Compare(other interface{}) int // връща -1, 0, 1
}
Структура в Go е съвместима с интерфейса, ако реализира всички методи на този интерфейс. Тоест, ако вашата структура реализира метода Compare с необходимата сигнатура, тя е съвместима с Comparable.
Пример:
type MyStruct struct {
Value int
}
func (m MyStruct) Compare(other interface{}) int {
o, ok := other.(MyStruct)
if !ok {
return -2 // или обработка на грешка
}
if m.Value < o.Value {
return -1
} else if m.Value > o.Value {
return 1
}
return 0
}
// MyStruct сега реализира Comparable
Ако методът Compare не е реализиран, структурата не е съвместима с интерфейса Comparable.