我想知道 Equal(==) 和 identical(===) 表达式之间的区别。还有为什么我们使用模式匹配 (~=) 表达式。我在哪里可以使用这些表达式。谁能解释一下。提前致谢。
我的示例代码是:
var sample1 = "Steve jobs"
var sample2 = "Steve jobs"
sample1 === sample2 ? println("Its Equal"):println("Not equal") //result "Not equal"
var sample3 = "Steve jobs"
var sample4 = "Steve jobs"
sample3 == sample4 ? println("Its Equal"):println("Not equal")//result "Its Equal"
始终欢迎使用具有良好示例的其他二进制表达式。我认为 objective-c 中不存在模式匹配。
最佳答案
你写的例子连编译都编译不了
那是因为 ===
仅针对对象类型 定义,而 Swift String
是一个值类型 .
一般来说,表示两个对象实例是同一个实例。而 ==
检查内容的相等性。
您只能将 ===
与对象类型的 NSString
实例一起使用:
var sample1: NSString = "string1"
var sample2: NSString = "string1"
sample1 === sample2 //false
模式匹配表达式~=
被switch-case
控制语句使用。 switch(value)
定义一个值,每个 case pattern:
定义一个匹配的模式。 ~=
函数会为每个 case
调用,以决定是否应执行 case
语句。
关于swift - swift 中二进制表达式的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24363896/