美文网首页
菜鸡学Swift2.0 6.可选型 (Optional)

菜鸡学Swift2.0 6.可选型 (Optional)

作者: 菜鸡 | 来源:发表于2016-09-26 16:53 被阅读8次

    1. 可选型的声明 ( 可选型的值可以是实值或者nil )

    显示声明方法是在变量类型后面加上 ?(值可以是nil)
    var name: String? = "jack"
    
    隐式声明方法是在变量后面加上 !(具体使用时必须确定是有值得)
    var name: String! = nil
    name = "jack"
    

    2. 可选型强制解包

    强制解包在可选型后面加上!就可以
    var name: String? = "jack"
    "他的名字是:" + name!
    
    强制解包值如果为nil就会出错
    var name: String? = nil
    "他的名字是:" + name!
    

    3. if let 判断解包多个可选项不为nil

    多个解包中间可以用","隔开,还可以用where来同时判断其他条件
    解包完的值只能在{ } 中使用,在{ } 外面使用又变成可选型了
    如果值是nil 则不可以解包
    var errorMessge: String? = "信息"
    var errorCode: String? =" 404 "
    if let errorCode = errorCode , errorMessage where errorCode == "404" {
        "两个值都不为nil"
    }
    

    4. Optional Chaining 和 Nil-Coalesce

    //uppercaseString 是把字符串变为大写
    var errorMessage:String? = "Hello"
    //尝试解包 如果值是nil 尝试解包失败就不执行后面的方法
    errorMessage?.uppercaseString
    //强制解包 如果值是nil 强制解包会报错
    errorMessage!.uppercaseString
    
    Optional Chaining ( 可选型链条 XXX?.XXXX?.XXXXX )
    返回值是nil
    var errorMessage:String? = nil
    if let errorMessage = errorMessage?.uppercaseString {
        errorMessage
    }
    
    返回值是自定义的默认值
    Nil-Coalesce (let 变量名 = 可选型 ?? "如果是nil给的默认值")
    var errorMessage:String? = nil
    let message = errorMessage ?? "默认值"

    相关文章

      网友评论

          本文标题:菜鸡学Swift2.0 6.可选型 (Optional)

          本文链接:https://www.haomeiwen.com/subject/gkhqyttx.html