Junior — Middle
A estrutura em Go é compatível com a interface Comparable?
sobes.tech IA
Resposta da IA
Em Go, a interface Comparable não faz parte do padrão incorporado, mas muitas vezes é entendida como uma interface com um método de comparação, por exemplo:
type Comparable interface {
Compare(other interface{}) int // devolve -1, 0, 1
}
Uma estrutura em Go é compatível com a interface se implementar todos os métodos dessa interface. Ou seja, se sua estrutura implementar o método Compare com a assinatura necessária, ela é compatível com Comparable.
Exemplo:
type MyStruct struct {
Value int
}
func (m MyStruct) Compare(other interface{}) int {
o, ok := other.(MyStruct)
if !ok {
return -2 // ou tratamento de erro
}
if m.Value < o.Value {
return -1
} else if m.Value > o.Value {
return 1
}
return 0
}
// MyStruct agora implementa Comparable
Se o método Compare não for implementado, a estrutura não é compatível com a interface Comparable.