Sobes.tech
Junior — Middle

Можете ли објаснити шта је интерфејс Comparable и како се користи?

sobes.tech АИ

Одговор од АИ

U Go jeziku, interfejs Comparable kao poseban standardni interfejs ne postoji, ali jezik ima ugrađenu mogućnost poređenja vrednosti pomoću operatora == i != za tipove koji podržavaju poređenje.

Međutim, ako govorimo o interfejsu koji definiše metodu za poređenje objekata, često se kreira prilagođeni interfejs, na primer:

// Interfejs Comparable sa metodom Compare
// Vraća negativan broj ako je trenutni objekat manji od drugog,
// 0 ako su jednaki, i pozitivan ako je veći.
type Comparable interface {
    Compare(other interface{}) int
}

Ovaj interfejs omogućava implementaciju sortiranja ili poređenja objekata različitih tipova.

Primer upotrebe:

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
}

Na ovaj način, interfejs Comparable je ugovor koji zahteva implementaciju metode poređenja, kako bi objekti mogli biti sortirani ili poređeni međusobno.