Chapters

Hide chapters

Swift Cookbook

Live Edition · Multiplatform · Swift · Editor agnostic

Use Equatable Protocol in Swift
Written by Team Kodeco

The Equatable protocol in Swift allows you to define equality between instances of a type. By conforming to this protocol, you can implement the == operator and determine whether two instances of your type are equal. The protocol is defined as follows:

public protocol Equatable {
  static func ==(lhs: Self, rhs: Self) -> Bool
}

When two instances of a type that conforms to Equatable are compared with the == operator, the implementation of == is called to determine equality. If == returns true, the instances are considered equal. If == returns false, the instances are considered not equal.

For example, if you have a custom struct Person:

struct Person: Equatable {
  let name: String
  let age: Int
}

You can make two instances of Person equal by conforming to Equatable and implementing the == operator:

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

Here is an example for using Person:

let person1 = Person(name: "John Doe", age: 30)
let person2 = Person(name: "Jane Doe", age: 25)
let person3 = Person(name: "John Doe", age: 30)

print(person1 == person2) // false
print(person1 == person3) // true
© 2024 Kodeco Inc.