所以引進了Optional的概念

2021-08-08 09:57:05 字數 522 閱讀 4383

很多人在剛上手swift時對於optional中 『!』 和 『?』 的使用十分不理解,接下來我會談一談自己對於這兩個符號的使用方式的理解。

先來說說optional的概念,以方便之後的理解。來看一下下面的**:

var a : string = nil

// 編譯錯誤,string型別不能為nil

var b : string = 「hello!」

swift 中的普通型別不再能設為nil。那如何表示這個值不存在呢?所以引進了optional的概念:代表 nil 或某個具體的值。例如:

var c : string? = nil

var d : string? = 「hello!」

string? 就是乙個optional,它既能夠被具體型別賦值, 也可以賦值為nil。通過 string 和 optional的比較,發現optional 就相當於把具體型別和 nil 打包**在了一起,轉變成了一種新的型別。