Swift - 同一性运算符
同一性运算符用于检查给定的常量或变量是否引用同一个实例。这些运算符通常与对象或 class 使用,因为它们是 reference type。这些运算符与相等运算符不同。
相等运算符检查两个给定的值是否相等,而同一性运算符检查两个给定的变量是否引用同一个引用。Swift 支持两种同一性运算符 −
| 运算符 | 名称 | 示例 |
|---|---|---|
| === | 相同于 | Num1 === Num2 |
| !== | 不同于 | Num1 !== Num2 |
Swift 中的相同于运算符
相同于 "===" 运算符用于检查给定的两个常量或变量是否引用 class 的同一个实例。如果是,则该运算符将返回 true。
否则,该运算符将返回 false。该运算符比较引用而不是对象的内容。
语法
以下是相同于运算符的语法 −
myVariable1 === myVariable2
示例
Swift 程序,用于检查给定的变量是否引用同一个对象。
import Foundation
// 定义 class
class Employee {
var empName: String
init(empName: String) {
self.empName = empName
}
}
// 创建 Employee class 的对象
let object1 = Employee(empName: "Monika")
let object2 = object1
// 检查两个变量是否引用同一个对象
// 使用相同于 (===) 运算符
if object1 === object2 {
print("是的!object1 和 object2 是相同的")
} else {
print("不是!object1 和 object2 不是相同的")
}
输出
是的!object1 和 object2 是相同的
Swift 中的不同于运算符
不同于 "!==" 运算符用于检查给定的变量是否不引用同一个对象。如果是,则该运算符将返回 true。否则,将返回 false。
语法
以下是不同于运算符的语法 −
myVariable1 !== myVariable2
示例
Swift 程序,使用不同于 "!==" 运算符检查两个变量是否不引用同一个对象。
import Foundation
// 定义 class
class Author1 {
var bookName: String
init(bookName: String) {
self.bookName = bookName
}
}
class Author2 {
var bookName: String
init(bookName: String) {
self.bookName = bookName
}
}
// 创建对象
let obj1 = Author1(bookName: "Tales of Mumbai")
let obj2 = Author2(bookName: "Right to find")
// 使用不同于 (!==) 运算符
if obj1 !== obj2 {
print("它们在同一性上不相等")
} else {
print("它们在同一性上相等")
}
输出
它们在同一性上不相等