//最常见的错误
//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)
}