操作符
===(_:
===(_:_:)
返回一个布尔值,指示两个引用是否指向同一个对象实例。
声明
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+
相关用法
- Swift ==(_:_:)用法及代码示例
- Swift KeyValuePairs flatMap(_:)用法及代码示例
- Swift String.UTF8View first用法及代码示例
- Swift Result.Publisher zip(_:_:_:)用法及代码示例
- Swift Optional.Publisher reduce(_:_:)用法及代码示例
- Swift Int8 ~(_:)用法及代码示例
- Swift SetAlgebra isStrictSubset(of:)用法及代码示例
- Swift UInt +(_:)用法及代码示例
- Swift Array enumerated()用法及代码示例
- Swift FlattenSequence prefix(_:)用法及代码示例
- Swift Slice endIndex用法及代码示例
- Swift LazySequence split(maxSplits:omittingEmptySubsequences:whereSeparator:)用法及代码示例
- Swift MutableCollection partition(by:)用法及代码示例
- Swift ReversedCollection min(by:)用法及代码示例
- Swift RandomNumberGenerator用法及代码示例
- Swift Dictionary.Keys shuffled()用法及代码示例
- Swift AnySequence elementsEqual(_:)用法及代码示例
- Swift UInt &<<(_:_:)用法及代码示例
- Swift Optional.Publisher tryDrop(while:)用法及代码示例
- Swift DefaultIndices endIndex用法及代码示例
- Swift Substring.UnicodeScalarView insert(contentsOf:at:)用法及代码示例
- Swift LazyFilterSequence dropFirst(_:)用法及代码示例
- Swift LazySequence suffix(from:)用法及代码示例
- Swift ArraySlice starts(with:)用法及代码示例
- Swift Int16.Words max()用法及代码示例
注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 ===(_:_:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。