Swift 恒等运算符怎么用?Swift === 和 !== 怎么判断对象身份?

文章导读
上一个 测验 下一个 同一性运算符用于检查给定的常量或变量是否引用同一个实例。这些运算符通常与对象或 class 使用,因为它们是 reference type。这些运算符与相等运算符不同。
📋 目录
  1. A Swift 中的相同于运算符
  2. B Swift 中的不同于运算符
A A

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("它们在同一性上相等")
}

输出

它们在同一性上不相等