日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

swift中为什么要创造出可选型?

發布時間:2023/12/20 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 swift中为什么要创造出可选型? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

(1)因為nil這個東西,swift中沒有就是沒有。? Int?整型可選型,如果不提前聲明,直接賦值變量 nil會報錯 。
可以將Int賦值給Int??? ,但是不能將Int?賦值給Int 。

(2)不能將 普通 String 和可選型直接一起混用,必須 Unwrap 。也就是這樣 在某個可選型變量后面加個!
表示擔保它一定不為nil? 。這個 叫 強制解包 , 是有風險的。

?(3)swift提供了一種語法用來解包 ,let 也可以用var
?if let errorCode = errorCode {
??? 僅在這里面可以使用解包后的errorCode ,此時不需要加!
??? 但是出了花括號 ,errorCode又是可選型了。這是因為swift是嚴格的類型語言。
}

if let 這里可以用逗號隔開,對多個可選型進行解包 ,這里還可以用where關鍵字判斷是否為某個值{

(4)隱式解析可選:

非Optional的變量必須在聲明時或者構造器中進行初始化,但是如果想在viewDidLoad中初始化,所以只能聲明Optional:var myLabel: UILabel? ,雖然我們確定在viewDidLoad 中初始化,并且在ViewController的生命周期內不會置為nil, 但是對myLabel操作時,每次依然要加上!來強制拆包

myLabel!.text = "text"

myLabel!.frame = CGRectMake(0,0,10,10)

對于這種類型的值,我們可以直接這么聲明 var myLabel: UILabel!,這種是特殊的Optional,稱為Implicitly?Unwrapped?Optionals,?直譯就是隱式拆包的Optional,就等于說你每次對這種類型的值操作時,都會自動在操作前補上一個!進行拆包

(5)Swift 的nil和 Objective-C 中的nil并不一樣。在 Objective-C 中,nil是一個指向不存在對象的指針。在 Swift 中,nil不是指針——它是一個確定的值,用來表示值缺失。任何類型的可選都可以被設置為nil,不只是對象類型。

轉載于:https://www.cnblogs.com/liuw-flexi/p/6866045.html

總結

以上是生活随笔為你收集整理的swift中为什么要创造出可选型?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。