swift - swift 中二进制表达式的问题

标签 swift ios8 xcode6

我想知道 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 中不存在模式匹配。

最佳答案

你写的例子连编译都编译不了

enter image description here

那是因为 === 仅针对对象类型 定义,而 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/

相关文章:

ios - IndexedDB 插入时速度慢

ios - Xcode 6 错误 - 为 iOS 模拟器构建时出现 "Missing Required Architecture i386"

ios - 页面控件未更新

ios - 切换到横向时,Tableview 将约束更改为全屏

swift - 核心位置委托(delegate)闭包中的值(value)

ios - 更新 TableView 导致滞后和警告

ios - 如何区分在全新安装后和更新后打开 iOS 应用程序

ios - 从 UITableView 中移除动画单元格后更新数据源

swift - 设备旋转时更改固定空格键按钮的宽度的问题

xcode6 - xCode 断点在调试时不显示我的代码