Junior — Middle
Pode explicar o que é a interface Comparable e como ela é usada?
sobes.tech IA
Resposta da IA
No Go, a interface Comparable como uma interface padrão separada não existe, mas a linguagem tem a capacidade incorporada de comparar valores usando os operadores == e != para tipos que suportam comparação.
No entanto, se falarmos de uma interface que define um método para comparar objetos, muitas vezes cria-se uma interface personalizada, por exemplo:
// Interface Comparable com o método Compare
// Retorna um número negativo se o objeto atual for menor que o outro,
// 0 se forem iguais, e positivo se for maior.
type Comparable interface {
Compare(other interface{}) int
}
Essa interface permite implementar ordenação ou comparação de objetos de tipos arbitrários.
Exemplo de uso:
type IntWrapper int
func (a IntWrapper) Compare(b interface{}) int {
other := b.(IntWrapper)
if a < other {
return -1
} else if a > other {
return 1
}
return 0
}
Dessa forma, a interface Comparable é um contrato que exige a implementação do método de comparação, para que os objetos possam ser ordenados ou comparados entre si.