最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

swift 可選型的使用詳解

 更新時間:2016年10月25日 10:57:22   作者:追到夢的魔術(shù)師  
可選性是Swift提供的一個特殊類型,它為我們編寫程序提供便利的條件。這篇文章主要介紹了swift 可選型的使用詳解,非常不錯具有參考借鑒價值,需要的朋友可以參考下

 一、基本用法

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

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

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

二、可選型解包使用

var errorCode:String? = "404"
print( errorCode )
// 可選型不可以直接使用
//"The errorCode is" + errorCode
// 強(qiáng)制解包
"The errorCode is " + errorCode!
// 強(qiáng)制解包是危險的
errorCode = nil
//"The errorCode is" + errorCode!
// 判斷不是nil
if 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中應(yīng)寫為
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中應(yīng)寫為 
// where
if let errorCode = errorCode , let errorMessage = errorMessage , errorCode == "404"{
print("Page not found")
}

四、Optional chaining的使用

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

這種方法可以進(jìn)行嘗試解包,使代碼簡潔

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

五、Nil-Coalescing 的使用

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

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

相關(guān)文章

  • Swift心得筆記之控制流

    Swift心得筆記之控制流

    控制流(Control Flow)我不想這么譯的。。。我更想叫控制語句,但是想想,這么叫也沒錯,意指流程控制。大部分用法跟C類似。
    2015-04-04
  • SwiftUI 登錄界面布局實現(xiàn)示例詳解

    SwiftUI 登錄界面布局實現(xiàn)示例詳解

    這篇文章主要為大家介紹了SwiftUI 登錄界面布局實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • Swift中實現(xiàn)點擊、雙擊、捏、旋轉(zhuǎn)、拖動、劃動、長按手勢的類和方法介紹

    Swift中實現(xiàn)點擊、雙擊、捏、旋轉(zhuǎn)、拖動、劃動、長按手勢的類和方法介紹

    這篇文章主要介紹了Swift中實現(xiàn)點擊、雙擊、捏、旋轉(zhuǎn)、拖動、劃動、長按手勢的類和方法介紹,本文分別給出了各種手勢的實現(xiàn)代碼,需要的朋友可以參考下
    2015-01-01
  • 使用?Swift?Package?插件生成代碼的示例詳解

    使用?Swift?Package?插件生成代碼的示例詳解

    這篇文章主要介紹了使用?Swift?Package?插件生成代碼,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • swift 3.0中realm封裝類示例代碼

    swift 3.0中realm封裝類示例代碼

    這篇文章主要給大家介紹了關(guān)于swift 3.0中realm封裝類的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用swift具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-10-10
  • Swift如何為網(wǎng)頁承載頁面添加更多功能詳解

    Swift如何為網(wǎng)頁承載頁面添加更多功能詳解

    這篇文章主要給大家介紹了關(guān)于Swift如何為網(wǎng)頁承載頁面添加更多功能的相關(guān)資料,包括添加菊花加載的效果、添加跳轉(zhuǎn)到Safari的功能、添加復(fù)制鏈接的功能以及添加分享網(wǎng)頁的功能,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-05-05
  • Swift?中的?RegexBuilder學(xué)習(xí)指南

    Swift?中的?RegexBuilder學(xué)習(xí)指南

    這篇文章主要為大家介紹了Swift中的RegexBuilder學(xué)習(xí)指南,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • Swift自定義iOS中的TabBarController并為其添加動畫

    Swift自定義iOS中的TabBarController并為其添加動畫

    這篇文章主要介紹了Swift自定義iOS中的TabBarController并為其添加動畫的方法,即自定義TabBarController中的的TabBar并為自定義的TabBar增加動畫效果,需要的朋友可以參考下
    2016-04-04
  • Swift調(diào)用Objective-C代碼

    Swift調(diào)用Objective-C代碼

    目前Swift語言所編寫的應(yīng)用才剛剛可以使用Xcode 6 GM版本提交,而Objective-C作為蘋果的主開發(fā)語言存在了很多年了。目前尚無成熟的Swift庫可用,所以當(dāng)前編寫應(yīng)用可以說基本離不開調(diào)用Objective-C代碼的情況。
    2014-09-09
  • Swift實現(xiàn)Selection Sort選擇排序算法的實例講解

    Swift實現(xiàn)Selection Sort選擇排序算法的實例講解

    選擇排序是一種穩(wěn)定的排序算法,且實現(xiàn)代碼通常比冒泡排序要來的簡單,這里我們就來看一下Swift實現(xiàn)Selection Sort選擇排序的實例講解
    2016-07-07

最新評論

塘沽区| 盐源县| 泽库县| 丰顺县| 铜梁县| 同江市| 牙克石市| 鞍山市| 锡林郭勒盟| 来凤县| 长丰县| 金沙县| 寻甸| 安塞县| 前郭尔| 巴塘县| 铅山县| 明溪县| 海城市| 镇平县| 柘荣县| 城市| 盱眙县| 梁河县| 诸城市| 呼图壁县| 伊川县| 黎平县| 顺义区| 鲁甸县| 嵊州市| 安吉县| 钟祥市| 凤冈县| 和龙市| 江油市| 昌图县| 陈巴尔虎旗| 灵宝市| 彰武县| 卫辉市|