Swift version: 5.10
Swift gives us two equality operators, ==
and ===
, that do slightly different things. You will almost certainly need to use both of them so it’s worth taking the time to learn them.
First, ==
is the equality operator, which tests that two things are equal for whatever definition of “equal” those things use. For example, 5 == 5
is true because there ==
means an integer comparison, and the same is true for other built-in value types such as strings, booleans, and doubles.
Things get more complicated when ==
is used with a struct you built, because by default they cannot be compared – you need to make them conform to the Equatable
protocol.
In comparison, ===
is the identity operator, which checks whether two instances of a class point to the same memory. This is different from equality, because two objects that were created independently using the same values will be considered equal using ==
but not ===
because they are different objects.
The ===
operator is available only when using classes because structs are designed so they are always uniquely referenced.
SPONSORED Get accurate app localizations in minutes using AI. Choose your languages & receive translations for 40+ markets!
Sponsor Hacking with Swift and reach the world's largest Swift community!
Available from iOS 8.0
This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.
Link copied to your pasteboard.