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

swift 可選型的使用詳解

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

 一、基本用法

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

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

// 使用特殊值作為“無”可能產(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)制解包是危險(xiǎn)的
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同時(shí)解包多個(gè)變量
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()
//此時(shí) uppercaseErrorMessage2 為String類型。此時(shí)為強(qiáng)制解包,容易出現(xiàn)錯(cuò)誤

五、Nil-Coalescing 的使用

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

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

相關(guān)文章

  • Swift心得筆記之控制流

    Swift心得筆記之控制流

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

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

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

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

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

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

    這篇文章主要介紹了使用?Swift?Package?插件生成代碼,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    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í)價(jià)值,需要的朋友們下面隨著小編來一起學(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實(shí)現(xiàn)Selection Sort選擇排序算法的實(shí)例講解

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

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

最新評論

云林县| 乌苏市| 环江| 穆棱市| 辽宁省| 理塘县| 乌兰浩特市| 迁西县| 漳平市| 乃东县| 潜山县| 佛坪县| 定襄县| 河曲县| 台山市| 大新县| 富顺县| 广南县| 忻州市| 醴陵市| 海丰县| 勐海县| 绵阳市| 赤壁市| 凤台县| 临邑县| 中方县| 镇江市| 汪清县| 清苑县| 玛沁县| 金川县| 会理县| 鱼台县| 木兰县| 赤峰市| 仲巴县| 正安县| 淮南市| 子长县| 南平市|