swift可选绑定,及其where子句

swift版本:
Apple Swift version 2.1 (swiftlang-700.1.101.6 clang-700.1.76)
Target: x86_64-apple-darwin14.5.0

1、可选绑定语句中的每一个变量都必须不为nil,if条件才为真;
2、where子句里的条件为真,if条件才为真;
3、没有绑定直接写where子句会编译错误。

if let firstNumber = Int("4"), secondNumber = Int("42"), thirdNumber = Int("33") 
    where firstNumber < secondNumber || secondNumber > thirdNumber {
    print("\(firstNumber) < \(secondNumber)")
}

更新:
在swift 3.0中,if语句的where子句被取消掉了,直接使用逗号。而且每个变量前面都要加let。以上代码变更为:

if let firstNumber = Int("4"), let secondNumber = Int("42"), let thirdNumber = Int("33"), 
    firstNumber < secondNumber || secondNumber > thirdNumber {
    print("\(firstNumber) < \(secondNumber)")
}

不过,在switch中,where子句还是保留着。

let strSwitch:String?
strSwitch = "2"
switch strSwitch {
case "20"?:
    break
case let x where Int(x!) != nil && Int(x!)! < 10 :
    print(x!)
default:
    break
}

在这段代码里,where就不能被替换为逗号。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于 Swift 重要这个文档所包含的准备信息, 是关于开发的 API 和技术的。这个信息可能会改变, 根据这个文...
    无沣阅读 4,455评论 1 27
  • 53.计算字符 在字符串中获取字符值的数量, 可以使用字符串字符属性中的计数属性: let unusualMena...
    无沣阅读 1,182评论 0 4
  • 1. 简介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的...
    笨鸟慢飞阅读 5,872评论 0 4
  • 本章将会介绍 控制流For-In 循环While 循环If 条件语句Switch 语句控制转移语句 continu...
    寒桥阅读 758评论 0 0
  • 开头还是要先告诉朋友们,没看命运一和二的,可以先看一下哦,谢谢啦! “什么?她不是人?怎么可能?我们每天一起吃饭,...
    孤十四阅读 436评论 2 3