• Swift4.0复习Optional


    1.Optional基本使用:

    当我们声明一个Optional对象时,无论该对象是在文件作用域还是在函数体内作为局部对象声明,如果不对它初始化,那么它的值默认为空(nil)。

    // 声明a为Int类型的option类型对象
    var a: Int? = 100
    // 类型为Int?,初始化为nil
    var b: Int? = nil

    2.Optional链:

    3.Optional的强制拆解:

    4.Optional绑定:

    5.空结合操作符:

    var a = Int?(0)
    let b = 0
    
    // 这里的a ?? b表达式
    var c = a ?? b
    
    // 相当于
    c = a != nil ? a! : b

    6.隐式拆解的Optional类型:

    // 这里声明了一个隐式拆解的Optional变量a
    var a: Int! = 10
     
    // 这里b的类型为Int?
    let b = a
     
    // 这里输出:b = Optional(10)
    print("b = (String(describing: b))")
     
    // 当隐式拆解的Optional对象作为复合赋值操作符的左值时,
    // 仍然需要使用 ! 或 ? optional-chaining操作符
    a! += 20
    a? += 5
     
    // 这里声明了一个隐式拆解的Optional数组变量arr
    var arr: [Int]! = [1, 2, 3]
     
    // 这里对arr使用 ! 操作符,
    // 使得 arr! 表达式作为 += 的左操作数
    // 这里的 ! 不能缺省
    arr! += [4, 5, 6]

    使用场景:

    “将某个图像视图控件作为某个视图控制器类的实例属性。
    但是在声明它的时候由于不知道当前视图控制器的实际尺寸,也不知道所用的图像,
    因此无法对它进行初始化,而只有等到调用 viewDidLoad方法之后才能对它初始化。
    那么这个时候,该图像视图对象就可以声明为隐式拆解的Optional类型,后续对它成员的访问就不需要显式样使用optional-chaining操作符了,代码也能更简洁一些。” 摘录来自: “大话Swift 4.0”。 iBooks.

      

  • 相关阅读:
    PHP trim() 函数
    php 计算2个日期的相差天数
    php date('Y-n-j')的和date('Y-m-d')的区别
    转移服务器
    Invalid argument supplied for foreach()解决办法
    wordpress 后台忘记密码怎么办
    qrcode js插件生成微信二维码
    thinkphp5 注释
    tp5 新增完数据,获取id
    resstFul服务文件上传下载
  • 原文地址:https://www.cnblogs.com/pengsi/p/8488701.html
Copyright © 2020-2023  润新知