2.可选项

2017-12-07  本文已影响8人  min369

//最常见的错误
//Unexpectedly found nil while unwrapping an Optional value
//在解包的时候发现了nil值
/*
定义 可选项使用: ?
解包使用: !,准备计算
*/

func demo() {
    //********定义可选项的2种方式:*************
    //1.原始的可选项定义
    //none:没有值  some 某一类值
    let x : Optional = 10
    
    //2.简单的定义
    let y : Int? = 20 //nil //40
    
    //输出结果 Optional(10),提示这是一个可选项
    print(x)
    
    // Constant 'y' used before being initialized
    //常量y使用之前,必须初始化
    print(y)
    
    //1> 不同类型之间的值不能直接运算,如果没有值是nil(nil 不是任何数据类型,不能参与计算)
    //print(x + y)
    
    //2> "!" 强行解包,从可选值中强行获取对应的非空值,如果真的是nil,就会崩溃!
    //程序员必须对每一个“!”负责
    //程序中要少用“!”
    print(x! + y!)
}

func demo1() {
    //1> 定义y,没有初始化
    let y: Int?
    
    //2> 给常量设置数值,初始化的工作只能做一次
    y = 20;
    
    //再次修改常量会报错
    //  y = 30
    
    print(y)
    
    //****** var 的可选值默认为 nil
    //****** let 的可选值没有默认值
    var x: Int?
    
    //打印结果为nil
    print(x)
}
上一篇 下一篇

猜你喜欢

热点阅读