=== について

iOS

=== はオブジェクト(インスタンス)の比較として使用する。

まだ説明のない演算子に「===」と「!==」があります。これは参照型の値であるクラスのインスタンスの実体が同一のものかどうかを調べるためのものです。

Swiftには、複数箇所から参照されているインスタンスが同一のものかどうかを調べるための演算子として「===」が用意されています。この演算子はインスタンスの値が等しいかどうか(同値性)ではなく、メモリ上にある同じインスタンスの実体を指しているかどうか(同一性)を調べます。

同一ではないことを調べる演算子は「!==」です。

class Time1 {}
class Time2 {}

let time1 = Time1()
let time2 = Time2()

print(time1 === time2) // false

let str1 = NSString(string: "hello")
let str2 = NSString(string: "hello")

print(str1 == str2) // true

詳解 Swift より抜粋。

型同士の同一性を比較する機会があるかは不明だが、なるほどなーと思った。

タイトルとURLをコピーしました