Swift中 和 的區別

2021-07-08 09:30:24 字數 1060 閱讀 6854

1.常量和變數

swift語言中是用let來定義常量,並且要初始化。var來定義變數,在let或者var後面申明型別,冒號+空格,然後再加上型別名稱。

2.optional(可選)變數

可選變數用於處理值缺失的情況,有點類似於oc中的nil,可以用於任何型別上,不僅僅是類,不過更加安全。swift是型別安全的一門語言,可以很少申明型別。

附:swift和objective-c中nil的區別

1)oc中,nil是乙個指向不存在物件的指標;

2)swift中,nil不是指標,它是乙個確定的值,用於表示值缺失。任何型別的可選狀態都可以設定為nil,不只是物件型別;

3.深入了解optional變數

optional其實就是乙個enum,裡面有none和some型別。nil就是optional.none,非nil就是optional.some,通過some(t)包裝原始值,所以在是用optional的時候要進行拆包。

宣告乙個可選型別的時候要在型別後面加上? 如:var str : string?

var strvalue: string? 

意思不是「我宣告了乙個optional的string值」,而是我宣告了乙個optional型別值。

對乙個可選型別的值,需要進行拆包才不會報錯。

拆包有兩種方式,如下:

1)optional binding

如:  if let str = strvalue

2)通過! str!

?的使用場景:

1)宣告optional值變數

2)在對optional值操作中,用來判斷是否能響應後面的操作

!的使用場景:

1)強制對optional值進行拆包

2)宣告隱式拆包變數,一般用於類中的屬性

如果你在隱式解析可選型別沒有值的時候進行取值,會crash。和在沒有值的可選型別裡面拆包是一樣的。

4.總結

可選型別在swift裡面十分重要,在做專案的過程,要尤為重視可選變數,不然應用跑起來老是crash,並且debug也不方便找出錯誤來,不過xcode提示功能也很不錯,這裡贊乙個。總之,一定要謹慎。

Swift中 !和 ?的區別及使用

相信大家在學習和使用swift的時候,肯定會被 和?搞瘋過,糾結這兩個符號到底是個什麼鬼 鬼知道什麼時候使用 什麼時候使用?下面就說一下 和?區別以及該怎麼使用!和 其實分別是swift語言中對一種可選型別 optional 操作的語法糖。那可選型別是幹什麼的呢?swift中是可以宣告乙個沒有初始值...

Java中 和 的區別

第十一,short s1 1 s1 s1 1 有什麼錯?short s1 1 s1 1 有什麼錯?引出一下討論。賦值運算子,在編譯器將右邊的表示式結果計算出來後,和左邊的變數型別比較精度,如果左邊的變數精度低於右邊的結果的精度,編譯器會顯式的報錯,告訴程式設計師去強制轉型。所以s1 s1 1出錯 最...

Linux shell中 和 的區別

shell中和的區別 結構比結構更加通用。這是乙個擴充套件的test命令,支援萬用字元。在 和 之間所有的字元都不會發生檔名擴充套件或者單詞分割,但是會發生引數擴充套件和命令替換。使用 條件判斷結構,而不是 能夠防止指令碼中的許多邏輯錯誤,比如,和 這些操作符能夠正常存在於這個條件判斷中,但是如果出...