Sobes.tech
Junior — Middle

In which cases is it advisable to use the Comparable interface in your project?

sobes.tech AI

Answer from AI

The Comparable interface is useful when you need to define the natural order of objects of your class so that they can be sorted or compared directly. For example, if you have a data model with a numeric or alphabetic field that logically determines the order of objects (such as dates, names, ratings), implementing Comparable allows you to use standard sorting and comparison methods.

Example: a model class with Comparable for sorting by name:

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: "Ivan"), Person(name: "Anna")]
let sortedPeople = people.sorted() // Will sort by name

Thus, Comparable is useful for simplifying sorting and comparison of objects in collections.