當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Swift ===(_:_:)用法及代碼示例

操作符

===(_:_:)

返回一個布爾值,指示兩個引用是否指向同一個對象實例。

聲明

func === (lhs: AnyObject?, rhs: AnyObject?) -> Bool

參數

lhs

比較參考。

rhs

另一個比較參考。

詳述

此運算符測試兩個實例是否具有相同的標識,而不是相同的值。對於值相等,請參閱等於運算符 (==) 和 Equatable 協議。

下麵的示例定義了一個IntegerRef 類型,一個具有引用語義的整數類型。


class IntegerRef: Equatable {
    let value: Int
    init(_ value: Int) {
        self.value = value
    }
}


func ==(lhs: IntegerRef, rhs: IntegerRef) -> Bool {
    return lhs.value == rhs.value
}

因為IntegerRef 是一個類,所以可以使用identical-to 運算符(===)比較它的實例。此外,由於IntegerRef 符合Equatable 協議,因此還可以使用等於運算符(==)來比較實例。


let a = IntegerRef(10)
let b = a
print(a == b)
// Prints "true"
print(a === b)
// Prints "true"

identical-to 運算符 (===) 在比較兩個對不同對象實例的引用時返回 false,即使這兩個實例具有相同的值。


let c = IntegerRef(10)
print(a == c)
// Prints "true"
print(a === c)
// Prints "false"

可用版本

iOS 8.0+, iPadOS 8.0+, macOS 10.10+, Mac Catalyst 13.0+, tvOS 9.0+, watchOS 2.0+

相關用法


注:本文由純淨天空篩選整理自apple.com大神的英文原創作品 ===(_:_:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。