Sobes.tech
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.