Swift 5 可選類型(Optionals)

可選類型(Optionals)

  • 可選項: 允許將其設置為nil
var name: String? = "jack"
var age: Int?
age = 10

  • 強制解包
var age1: Int?
age1!  //Fatal error: Unexpectedly found nil while unwrapping an Optional value:
age1 = 10
age1!  //確定可選性不為空的時候才可以強制解包
  • 可選項綁定: 通過把值賦給一個臨時的常量(let)或者變量(var)垂睬,并返回true/false ,ture 就會自動解包
if let num = Int("123"), num > 0 { //多條件判斷時,與可選項綁定鄰近的條件與可選項綁定之間用“,”連接柔袁,不可以用&&
    print(num)
} else {
    print("false")
}

  • 空合并運算符

a ?? b

  1. a 是可選項
  2. b 是可選或者不是可選
  3. a和b的存儲類型必須相同
  4. a != nil 返回 a
  5. a == nil 返回 b
  6. b 不是可選類型時提茁,返回的 a 是會d自動解包
  7. 注意返回值得類型

  • guard 語句
let info: [String : String] = ["user" : "swift"]

func guardTest() {
    guard var user = info["user"] else { // false 時執(zhí)行大括號里的代碼。 true 時跳過 guard 語句繼續(xù)執(zhí)行
        return                           // 必須跳出當前作用域耕挨, return拥娄,break耸弄,continue,throw秒咨,error
    }
    
    user = "oc"                         // guard 語句進行可選綁定時喇辽, 綁定的let,var 可以在 guard 的外層作用域中使用  
    print(user)
}

guardTest()


  • 隱式解包: 可以不進行檢查拭荤,也可以訪問時不進行解包茵臭。因為會自動解包。 但是因為是可選類型可能為 nil舅世,使用時 nil 會編譯時報錯旦委。能確定一直有值不為 nil 的時候可以使用
var num1: Int! = 10
num1 = nil
var num2: Int = num1 ?? 0

  • 多重可選項
var num1: Int? = 10
var num2: Int?? = num1
var num3: Int?? = 10

print(num2 == num3)
let n = (num2 ?? 10) ?? 2

var num4: Int? = nil
var num5: Int?? = num1
var num6: Int?? = nil

print(num5 == num6)

// frame variable -R / fr v -R 查看內存結構 查看詳細問題

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市雏亚,隨后出現(xiàn)的幾起案子缨硝,更是在濱河造成了極大的恐慌,老刑警劉巖罢低,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件查辩,死亡現(xiàn)場離奇詭異胖笛,居然都是意外死亡,警方通過查閱死者的電腦和手機宜岛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進店門长踊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人萍倡,你說我怎么就攤上這事身弊。” “怎么了列敲?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵阱佛,是天一觀的道長。 經常有香客問我戴而,道長凑术,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任所意,我火速辦了婚禮淮逊,結果婚禮上,老公的妹妹穿的比我還像新娘扶踊。我一直安慰自己壮莹,他們只是感情好,可當我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布姻檀。 她就那樣靜靜地躺著,像睡著了一般涝滴。 火紅的嫁衣襯著肌膚如雪绣版。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天歼疮,我揣著相機與錄音杂抽,去河邊找鬼。 笑死韩脏,一個胖子當著我的面吹牛缩麸,可吹牛的內容都是我干的。 我是一名探鬼主播赡矢,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼杭朱,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了吹散?” 一聲冷哼從身側響起弧械,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎空民,沒想到半個月后刃唐,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年画饥,在試婚紗的時候發(fā)現(xiàn)自己被綠了衔瓮。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡抖甘,死狀恐怖热鞍,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情单山,我是刑警寧澤碍现,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站米奸,受9級特大地震影響昼接,放射性物質發(fā)生泄漏。R本人自食惡果不足惜悴晰,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一慢睡、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧铡溪,春花似錦漂辐、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至哈扮,卻和暖如春纬纪,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背滑肉。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工包各, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人靶庙。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓问畅,卻偏偏與公主長得像,于是被迫代替她去往敵國和親六荒。 傳聞我的和親對象是個殘疾皇子护姆,可洞房花燭夜當晚...
    茶點故事閱讀 44,601評論 2 353

推薦閱讀更多精彩內容