//最常見的錯(cuò)誤
//Unexpectedly found nil while unwrapping an Optional value
//在解包的時(shí)候發(fā)現(xiàn)了nil值
/*
定義 可選項(xiàng)使用: 桶略?
解包使用: 哗讥!引瀑,準(zhǔn)備計(jì)算
*/
func demo() {
//********定義可選項(xiàng)的2種方式:*************
//1.原始的可選項(xiàng)定義
//none:沒有值 some 某一類值
let x : Optional = 10
//2.簡(jiǎn)單的定義
let y : Int? = 20 //nil //40
//輸出結(jié)果 Optional(10),提示這是一個(gè)可選項(xiàng)
print(x)
// Constant 'y' used before being initialized
//常量y使用之前丈莺,必須初始化
print(y)
//1> 不同類型之間的值不能直接運(yùn)算,如果沒有值是nil(nil 不是任何數(shù)據(jù)類型,不能參與計(jì)算)
//print(x + y)
//2> "!" 強(qiáng)行解包掌呜,從可選值中強(qiáng)行獲取對(duì)應(yīng)的非空值凡人,如果真的是nil名党,就會(huì)崩潰!
//程序員必須對(duì)每一個(gè)“挠轴!”負(fù)責(zé)
//程序中要少用“传睹!”
print(x! + y!)
}
func demo1() {
//1> 定義y,沒有初始化
let y: Int?
//2> 給常量設(shè)置數(shù)值岸晦,初始化的工作只能做一次
y = 20;
//再次修改常量會(huì)報(bào)錯(cuò)
// y = 30
print(y)
//****** var 的可選值默認(rèn)為 nil
//****** let 的可選值沒有默認(rèn)值
var x: Int?
//打印結(jié)果為nil
print(x)
}