Sobes.tech
Junior — Middle

Puteți explica ce este interfața Comparable și cum este utilizată?

sobes.tech AI

Răspuns de la AI

În Go, interfața Comparable ca interfață standard separată nu există, dar limbajul are posibilitatea încorporată de a compara valori folosind operatorii == și != pentru tipuri care suportă comparația.

Cu toate acestea, dacă vorbim despre o interfață care definește o metodă pentru compararea obiectelor, se creează adesea o interfață personalizată, de exemplu:

// Interfața Comparable cu metoda Compare
// Returnează un număr negativ dacă obiectul curent este mai mic decât celălalt,
// 0 dacă sunt egale, și pozitiv dacă este mai mare.
type Comparable interface {
    Compare(other interface{}) int
}

O astfel de interfață permite implementarea sortării sau comparării obiectelor de tipuri arbitrare.

Exemplu de utilizare:

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
}

Astfel, interfața Comparable este un contract care necesită implementarea metodei de comparare, pentru ca obiectele să poată fi sortate sau comparate între ele.