Swift-Tips之'==='與'=='的區別
摘要:
==
:它預設比較基本型別的值,比如:Int,String等,它不可以比較引用型別(reference type)或值型別(value type),除非該類實現了Equatable
let str1 = "hello"
l...
-
==
:它預設比較基本型別的值,比如:Int,String等,它不可以比較引用型別(reference type)或值型別(value type),除非該類實現了Equatable
let str1 = "hello" let str2 = "hello" //true print(str1 == str2) 複製程式碼
-
===
:它是檢查兩個物件是否完全一致(它會檢測物件的指標是否指向同一地址),它只能比較引用型別(reference type),不可以比較基本型別和值型別(type value)
如果Student類不實現Equatable
協議的話,它是不支援==
運算子的
class Student: Equatable { var name = "" init(name: String) { self.name = name } static func == (lhs: Student, rhs: Student) -> Bool { return lhs.name == rhs.name } } let stu1 = Student(name: "rose") let stu2 = Student(name: "rose") let stu3 = stu1 //true print(stu1 == stu2) //true print(stu1 === stu3) //false print(stu1 === stu2) 複製程式碼