精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Swift 可選(Optionals)類型

Swift 的可選(Optional)類型,用于處理值缺失的情況。可選表示"那兒有一個值,并且它等于 x "或者"那兒沒有值"。

Swfit語言定義后綴?作為命名類型Optional的簡寫,換句話說,以下兩種聲明是相等的:

var optionalInteger: Int?var optionalInteger: Optional<Int>

在這兩種情況下,變量optionalInteger都是可選整數類型。注意,在類型和?之間沒有空格。

Optional 是一個含有兩種情況的枚舉,None和Some(T),用來表示可能有或可能沒有值。任何類型都可以明確聲明為(或者隱式轉換)可選類型。當聲明一個可選類型的時候,要確保用括號給?操作符一個合適的范圍。例如,聲明可選整數數組,應該寫成(Int[])?;寫成Int[]?會報錯。

當你聲明一個可選變量或者可選屬性的時候沒有提供初始值,它的值會默認為nil。

可選項遵照LogicValue協議,因此可以出現在布爾環境中。在這種情況下,如果可選類型T?包含類型為T的任何值(也就是說它的值是Optional.Some(T)),這個可選類型等于true,反之為false。

如果一個可選類型的實例包含一個值,你可以用后綴操作符 !來訪問這個值,如下所示:

optionalInteger = 42optionalInteger! // 42

使用操作符!去獲取值為nil的可選變量會有運行時錯誤。

你可以用可選鏈接和可選綁定選擇性執行可選表達式上的操作。如果值為nil,任何操作都不會執行,也不會有運行報錯。

讓我們來詳細看下以下實例來了解 Swift 中可選類型的應用:

import Cocoavar myString:String? = nilif myString != nil {    print(myString)}else{    print("字符串為 nil")}

以上程序執行結果為:

字符串為 nil

可選類型類似于Objective-C中指針的nil值,但是nil只對類(class)有用,而可選類型對所有的類型都可用,并且更安全。


強制解析

當你確定可選類型確實包含值之后,你可以在可選的名字后面加一個感嘆號(!)來獲取值。這個感嘆號表示"我知道這個可選有值,請使用它。"這被稱為可選值的強制解析(forced unwrapping)。

實例如下:

import Cocoavar myString:String?myString = "Hello, Swift!"if myString != nil {   print(myString)}else{   print("myString 值為 nil")}

以上程序執行結果為:

Optional("Hello, Swift!")

強制解析可選值,使用感嘆號(!):

import Cocoavar myString:String?myString = "Hello, Swift!"if myString != nil {   // 強制解析   print( myString! )}else{   print("myString 值為 nil")}

以上程序執行結果為:

Hello, Swift!

注意:
使用!來獲取一個不存在的可選值會導致運行時錯誤。使用!來強制解析值之前,一定要確定可選包含一個非nil的值。


自動解析

你可以在聲明可選變量時使用感嘆號(!)替換問號(?)。這樣可選變量在使用時就不需要再加一個感嘆號(!)來獲取值,它會自動解析。

實例如下:

import Cocoavar myString:String!myString = "Hello, Swift!"if myString != nil {   print(myString)}else{   print("myString 值為 nil")}

以上程序執行結果為:

Hello, Swift!

可選綁定

使用可選綁定(optional binding)來判斷可選類型是否包含值,如果包含就把值賦給一個臨時常量或者變量。可選綁定可以用在if和while語句中來對可選類型的值進行判斷并把值賦給一個常量或者變量。

像下面這樣在if語句中寫一個可選綁定:

if let constantName = someOptional {    statements}

讓我們來看下一個簡單的可選綁定實例:

import Cocoavar myString:String?myString = "Hello, Swift!"if let yourString = myString {   print("你的字符串值為 - \(yourString)")}else{   print("你的字符串沒有值")}

以上程序執行結果為:

你的字符串值為 - Hello, Swift!
本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
與 Objective-C 的 API 交互
Swift 學習之二十一:?和 !(詳解)
swift optional 可選類型
Swift學習之路七(可選鏈 Optional Chaining | LvesLi's Blogging
iOS開發系列--Swift語言
Swift 不完全函數(part 1):如何避免
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服

主站蜘蛛池模板: 二连浩特市| 平泉县| 临邑县| 微博| 松潘县| 宾阳县| 建德市| 冷水江市| 滁州市| 大同市| 饶平县| 常熟市| 兴海县| 盐池县| 枝江市| 高碑店市| 金沙县| 文登市| 台湾省| 微山县| 灵川县| 安塞县| 翼城县| 大埔县| 万荣县| 蒙山县| 阜新| 四平市| 南城县| 华坪县| 板桥市| 长兴县| 中牟县| 临沧市| 榕江县| 乌恰县| 柳河县| 衢州市| 汝阳县| 德化县| 集贤县|