Operator 演算子

==(_:_:)

Returns a Boolean value indicating whether two optional instances are equal. 2つのオプショナルインスタンスが等しいかどうかを指し示すブール値を返します。

Declaration 宣言

static func == (lhs: Wrapped?, rhs: Wrapped?) -> Bool
Available when Wrapped conforms to Equatable. WrappedEquatableに準拠する時に利用可能です。

Parameters パラメータ

lhs

An optional value to compare. 比較することになるオプショナル値

rhs

Another optional value to compare. もう一方の比較するオプショナル値。

Discussion 解説

Use this equal-to operator (==) to compare any two optional instances of a type that conforms to the Equatable protocol. The comparison returns true if both arguments are nil or if the two arguments wrap values that are equal. Conversely, the comparison returns false if only one of the arguments is nil or if the two arguments wrap values that are not equal. この同等演算子(==)を使って、Equatableプロトコルに準拠するある型の何らかの2つのオプショナルインスタンスを比較してください。この比較がtrueを返すのは、両方の引数がnilである場合か、2つの引数が同等な値らをラップする場合です。反対に、この比較がfalseを返すのは、引数のうち1つだけがnilであるか、2つの引数が等しくない値をラップする場合です。


let group1 = [1, 2, 3, 4, 5]
let group2 = [1, 3, 5, 7, 9]
if group1.first == group2.first {
    print("The two groups start the same.")
}
// Prints "The two groups start the same."

You can also use this operator to compare a non-optional value to an optional that wraps the same type. The non-optional value is wrapped as an optional before the comparison is made. In the following example, the numberToMatch constant is wrapped as an optional before comparing to the optional numberFromString: あなたはまた、この演算子を使って非オプショナル値を、同じ型をラップするオプショナル値と比較することができます。非オプショナル値は、比較がなされる前にオプショナル値としてラップされます。続く例において、numberToMatch定数は、オプショナルnumberFromStringとの比較の前にオプショナル値としてラップされます:


let numberToFind: Int = 23
let numberFromString: Int? = Int("23")      // Optional(23)
if numberToFind == numberFromString {
    print("It's a match!")
}
// Prints "It's a match!"

An instance that is expressed as a literal can also be used with this operator. In the next example, an integer literal is compared with the optional integer numberFromString. The literal 23 is inferred as an Int instance and then wrapped as an optional before the comparison is performed. リテラルとして表されるインスタンスはまた、この演算子とともに使われることができます。次の例では、整数リテラルがオプショナル整数numberFromStringと比較されます。リテラル23は、Intインスタンスと推論され、それから比較が実行される前にオプショナルとしてラップされます。


if 23 == numberFromString {
    print("It's a match!")
}
// Prints "It's a match!"

Relationships 関係

From Protocol 由来プロトコル

See Also 参照

Comparing Optional Values オプショナル値の比較