Equality
Equality
In Kotlin there are two types of equality:
- Referential equality (two references point to the same object)
- Structural equality (a check for
equals()
)
Referential equality
Referential equality is checked by the ===
operation (and its negated counterpart !==
). a === b
evaluates to true if and only if a
and b
point to the same object.
Structural equality
Structural equality is checked by the ==
operation (and its negated counterpart !=
). By convention, an expression like a == b
is translated to
a?.equals(b) ?: (b === null)
I.e. if a
is not null
, it calls the equals(Any?)
function, otherwise (i.e. a
is null
) it checks that