Generic Operator

~=(_:_:)

Returns a Boolean value indicating whether two arguments match by value equality.

Declaration

func ~= <T>(a: T, b: T) -> Bool where T : Equatable

Parameters

lhs

A value to compare.

rhs

Another value to compare.

Discussion

The pattern-matching operator (~=) is used internally in case statements for pattern matching. When you match against an Equatable value in a case statement, this operator is called behind the scenes.

let weekday = 3
let lunch: String
switch weekday {
case 3:
    lunch = "Taco Tuesday!"
default:
    lunch = "Pizza again."
}
// lunch == "Taco Tuesday!"

In this example, the case 3 expression uses this pattern-matching operator to test whether weekday is equal to the value 3.