Sobes.tech
Junior — Middle

¿Puedes explicar qué es la interfaz Comparable y cómo se usa?

sobes.tech AI

Respuesta de la IA

En Go, la interfaz Comparable como interfaz estándar separada no existe, pero el lenguaje tiene la capacidad incorporada de comparar valores usando los operadores == y != para tipos que soportan comparación.

Sin embargo, si hablamos de una interfaz que define un método para comparar objetos, a menudo se crea una interfaz personalizada, por ejemplo:

// Interfaz Comparable con el método Compare
// Devuelve un número negativo si el objeto actual es menor que otro,
// 0 si son iguales, y positivo si es mayor.
type Comparable interface {
    Compare(other interface{}) int
}

Esta interfaz permite implementar ordenamiento o comparación de objetos de tipos arbitrarios.

Ejemplo 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
}

De esta manera, la interfaz Comparable es un contrato que requiere la implementación del método de comparación, para que los objetos puedan ser ordenados o comparados entre sí.