国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Swift > 正文

swift 可選型的使用詳解

2020-03-09 17:47:22
字體:
來源:轉載
供稿:網友

 一、基本用法

可選性是Swift提供的一個特殊類型,它為我們編寫程序提供便利的條件

swift是強類型語言,當我們需要使用一個變量,既可以為String,也可以為nil時,這時候就需要我們使用可選型。

// 使用特殊值作為“無”可能產生歧義//var errorCode = 404//errorCode = 0// 使用可選型var errorCode:Int? = 404print( errorCode )errorCode = nilprint( errorCode )var color: UIColor? = nil// Int? 和 Int 不是一種類型let imInt = 405errorCode = imInt//imInt = errorCode// 必須顯示地聲明可選型的類型//var imOptional = nilvar imOptional: String? = nil

二、可選型解包使用

var errorCode:String? = "404"print( errorCode )// 可選型不可以直接使用//"The errorCode is" + errorCode// 強制解包"The errorCode is " + errorCode!// 強制解包是危險的errorCode = nil//"The errorCode is" + errorCode!// 判斷不是nilif errorCode != nil{"The errorCode is " + errorCode!}else{"No error"}// if let 解包if let unwrappedErrorCode = errorCode{"The errorCode is " + unwrappedErrorCode}else{"No error"}// 可以使用相同的變量名if let errorCode = errorCode{"The errorCode is " + errorCode}else{"No error"}// 使用if-let同時解包多個變量var errorMessage:String? = "Not found"if let errorCode = errorCode{if let errorMessage = errorMessage{"The errorCode is " + errorCode + "/nThe errorMessage is " + errorMessage}}

三、多層解包(**swift3.0有變化)

//多層解包(swift 2.0使用)if let errorCode = errorCode , errorMessage = errorMessage{"The errorCode is " + errorCode + "/nThe errorMessage is " + errorMessage}//以上多層解包方法在swift3.0中應寫為if let errorCode = errorCode , let errorMessage = errorMessage{"The errorCode is " + errorCode + "/nThe errorMessage is " + errorMessage}// where(swift 2.0使用)if let errorCode = errorCode , errorMessage = errorMessage where errorCode == "404"{print("Page not found")}//在swift3.0中應寫為 // whereif let errorCode = errorCode , let errorMessage = errorMessage , errorCode == "404"{print("Page not found")}

四、Optional chaining的使用

可選型?這種寫法叫做Optional chaining

這種方法可以進行嘗試解包,使代碼簡潔

var errorMessage: String? = "Not Found"if let errorMessage = errorMessage{errorMessage.uppercased()}//使用 Optional chainingerrorMessage?.uppercased()var uppercaseErrorMessage = errorMessage?.uppercased()//uppercaseErrorMessage為可選型if let errorMessage = errorMessage?.uppercased(){errorMessage}// Optional chaining 也可以使用!let uppercaseErrorMessage2 = errorMessage!.uppercased()//此時 uppercaseErrorMessage2 為String類型。此時為強制解包,容易出現錯誤

五、Nil-Coalescing 的使用

// Nil-Coalescingvar errorMessage: String? = nillet message: Stringif let errorMessage = errorMessage{message = errorMessage}else{message = "No error"}// 使用三目運算符let message2 = errorMessage == nil ? "No error" : errorMessage!// 注意: 此時使用errorMessage需要強制解包.以保證message2是一個String,而非String?// 三目運算符?:的實質就是一個if else// 使用 ??let message3 = errorMessage ?? "No error"// 注意: 此時使用errorMessage不需要強制解包. // ??符號已經保證了訪問到errorMessage時, errorMessage不是nil// Swift將為我們自動解包, 保證message2永遠是一個String, 而不是String?//這種用法叫做 Nil-Coalescing

以上所述是小編給大家介紹的swift 可選型的使用詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!


注:相關教程知識閱讀請移步到swift教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 哈尔滨市| 封开县| 建始县| 庆城县| 泊头市| 乳山市| 黎平县| 淮滨县| 平度市| 阿拉善盟| 瑞丽市| 石城县| 伽师县| 财经| 渭源县| 铜川市| 京山县| 海兴县| 灌阳县| 布尔津县| 太保市| 克拉玛依市| 司法| 福州市| 武义县| 鲁甸县| 汽车| 芮城县| 云阳县| 商河县| 台南市| 乌鲁木齐市| 海林市| 九台市| 紫阳县| 德安县| 蓬莱市| 临西县| 晋州市| 隆尧县| 竹山县|