protocol Comparable
Inheritance |
Equatable
View Protocol Hierarchy →
|
---|---|
Import | import Swift |
Instance Methods
Returns true
if lhs
is equal to rhs
.
Equality implies substitutability. When x == y
, x
and
y
are interchangeable in any code that only depends on their
values.
Class instance identity as distinguished by triple-equals ===
is notably not part of an instance's value. Exposing other
non-value aspects of Equatable
types is discouraged, and any
that are exposed should be explicitly pointed out in
documentation.
Equality is an equivalence relation
x == x
istrue
x == y
impliesy == x
x == y
andy == z
impliesx == z
Inequality is the inverse of equality, i.e. !(x == y)
iff
x != y
.
Declaration
func ==(lhs: Self, rhs: Self) -> Bool
Declared In
Equatable
Instances of conforming types can be compared using relational operators, which define a strict total order.
A type conforming to
Comparable
need only supply the<
and==
operators; default implementations of<=
,>
,>=
, and!=
are supplied by the standard library:Axioms, in addition to those of
Equatable
:x == y
impliesx <= y
,x >= y
,!(x < y)
, and!(x > y)
x < y
impliesx <= y
andy > x
x > y
impliesx >= y
andy < x
x <= y
impliesy >= x
x >= y
impliesy <= x