Sobes.tech
Junior — Middle

Em que casos é aconselhável usar a interface Comparable no seu projeto?

sobes.tech IA

Resposta da IA

A interface Comparable é útil quando é necessário determinar a ordem natural dos objetos da sua classe para que possam ser classificados ou comparados diretamente. Por exemplo, se tiver um modelo de dados com um campo numérico ou alfabético pelo qual faz sentido ordenar os objetos (por exemplo, datas, nomes, classificações), a implementação de Comparable permitirá usar métodos padrão de ordenação e comparação.

Exemplo: classe de modelo com Comparable para ordenar por nome:

class Person: Comparable {
    var name: String

    init(name: String) {
        self.name = name
    }

    static func < (lhs: Person, rhs: Person) -> Bool {
        return lhs.name < rhs.name
    }

    static func == (lhs: Person, rhs: Person) -> Bool {
        return lhs.name == rhs.name
    }
}

let people = [Person(name: "Иван"), Person(name: "Анна")]
let sortedPeople = people.sorted() // Ordena pelo nome

Assim, Comparable é útil para simplificar a ordenação e comparação de objetos em coleções.