iOS Swift No.1 基础部分 - 可选绑定
第一章 基础部分
12. Optional Binding (可选绑定)
-
12.3 Optional Binding ( 可选绑定 )
可选绑定是用来找出一个可选类型里面是否存在一个值。如果有值就把它当作临时的常量或者变量来使用。我们可以用if和while语句来查看这个可选类型里面的值,然后把这个值提取出来当作常量或变量。if和while语句后面会具体详细提及。
if语句具体在可选绑定的实现的范本
// 范本代码实例 if let constnatName = someOptional { statements // 语句写在这里 }
可以用If语句来重写这个possibleNumber例子相对比强制展开。
// possibleNumber现在是一个String类型的Integer let possibleNumber = "123" // if let用来写可选绑定 if let actualNumber = Int(possibleNumber) { print("String \(possibleNumber) has integer value \(actualNumber)") }else { // else用来输出没有integer的情况 print("String \(possibleNumber) could not be converted to integer") }
-
读法和注意事项:
If the optional Int returned by Int(possibleNumber) contains a value,
set a new constant called actualNumber to the value contained in the optional.”如果转换成功输出If的语句反之则是else语句。结合上面的代码分解理解。
1,先不要看上面对possibleNumber常量的定义。如果说这个Int(possibleNumber)
它本身就能被转换成Integer的值或者它本身就包含一个Integer的值,
2,在把它 (Int(possibleNumber)
)作为一个整体当作这个常量 ( actualNumber )的赋值结果,
3,在用if条件语句判断是否这个值 (Int(possibleNumber)
)是否是一个Int的值,如果是就输出这个值反之输出else。这就是 if let (Optional Binding) 被用在可选绑定比要比这个强制站来 ( Forced Unwrapping )方便的地方。强制展开先要来确定这个optional到底有没有值再给常量或变量赋值麻烦而且还省代码量的地方。 -
布尔值 ( true, false ) 在多个可选绑定中的不同用法
// 用法1 if let firstNumber = Int("4"), let secondNumber = Int("42"), firstNumber < secondNumber && secondNumber < 100 { print("\(firstNumber) < \(secondNumber) < 100") }
从前一个例子里面也能知道这个给firstNumber和secondNumber分别绑定一个值,然后再让逻辑运算符 ( && ) 参与firstNumber和secondNumber做比较。所以这个时候firstNumber是4,secondNumber是42。先别管这个&&符号 先看
firstNumber < secondNumber
和secondNumber < 100
都是OK没有问题的,&&的意思是:逻辑值用来判断true 和 false 的只有当两边的值都是true或者都不是nil 的情况下这个整体逻辑运算才是true成立的, 如果任何一边的值是nil或者false这个整体的运算就是false。下面真个表格先列举出逻辑运算&&的情况。
-
逻辑运算 && 的表格
// 用法2 if let firstNumber = Int("4"){ if let secondNumber = Int("42"){ if firstNumber < secondNumber && secondNumber < 100{ print("\(firstNumber) < \(secondNumber) < 100") } } }
佛系博主:点赞 评论 分享 随缘吧!
下一篇: 教你用PS如何裁切和压缩电子版照片