欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

iOS Swift No.1 基础部分 - 可选绑定

程序员文章站 2024-01-24 20:23:52
...

第一章 基础部分

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 < secondNumbersecondNumber < 100 都是OK没有问题的,

    &&的意思是:逻辑值用来判断true 和 false 的只有当两边的值都是true或者都不是nil 的情况下这个整体逻辑运算才是true成立的, 如果任何一边的值是nil或者false这个整体的运算就是false。下面真个表格先列举出逻辑运算&&的情况。

  • 逻辑运算 && 的表格
    iOS Swift No.1 基础部分 - 可选绑定

    // 用法2
    if let firstNumber = Int("4"){
    	if let secondNumber = Int("42"){
    		if firstNumber < secondNumber && secondNumber < 100{
    			print("\(firstNumber) < \(secondNumber) < 100")
    		}
    	}
    }
    

佛系博主:点赞 评论 分享 随缘吧!