日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
詳解Swift可選(Optionals)類型

Swift是一種適用于iOS和OS X應(yīng)用的全新編程語(yǔ)言,它建立在最好的C和Objective-C語(yǔ)言之上,并且沒有C語(yǔ)言的兼容性限制。Swift采用安全的編程模式,增加了現(xiàn)代功能使編程更容易、更靈活、更有趣。Swift以成熟且備受寵愛的Cocoa和Cocoa Touch框架為支撐,這是一個(gè)重新構(gòu)想軟件開發(fā)的機(jī)會(huì)。

成都創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的蚌埠網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

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

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

var optionalInteger: Int?
var optionalInteger: Optional(Int)

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

Optional 是一個(gè)含有兩種情況的枚舉,None 和 Some(T),用來表示可能有或可能沒有值。任何類型都可以明確聲明為(或者隱式轉(zhuǎn)換)可選類型。當(dāng)聲明一個(gè)可選類型的時(shí)候,要確保用括號(hào)給 ? 操作符一個(gè)合適的范圍。例如,聲明可選整數(shù)數(shù)組,應(yīng)該寫成 (Int[])? 寫成 Int[]? 會(huì)報(bào)錯(cuò)。

當(dāng)你聲明一個(gè)可選變量或者可選屬性的時(shí)候沒有提供初始值,它的值會(huì)默認(rèn)為 nil。

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

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

optionalInteger = 42
optionalInteger! // 42

使用操作符!去獲取值為nil的可選變量會(huì)有運(yùn)行時(shí)錯(cuò)誤。

你可以用可選鏈接和可選綁定選擇性執(zhí)行可選表達(dá)式上的操作。如果值為nil,任何操作都不會(huì)執(zhí)行,也不會(huì)有運(yùn)行報(bào)錯(cuò)。

讓我們來詳細(xì)看下以下實(shí)例來了解 Swift 中可選類型的應(yīng)用:

import Cocoa

var myString:String? = nil

if myString != nil {
   print(myString)
}else{
   print("字符串為 nil")
}

以上程序執(zhí)行結(jié)果為:

字符串為 nil

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

強(qiáng)制解析

當(dāng)你確定可選類型確實(shí)包含值之后,你可以在可選的名字后面加一個(gè)感嘆號(hào)(!)來獲取值。這個(gè)感嘆號(hào)表示”我知道這個(gè)可選有值,請(qǐng)使用它?!边@被稱為可選值的強(qiáng)制解析(forced unwrapping)。

實(shí)例如下:

import Cocoa

var myString:String?

myString = "Hello, Swift!"

if myString != nil {
  print(myString)
}else{
  print("myString 值為 nil")
}

以上程序執(zhí)行結(jié)果為:

Optional("Hello, Swift!")

強(qiáng)制解析可選值,使用感嘆號(hào)(!):

import Cocoa

var myString:String?

myString = "Hello, Swift!"

if myString != nil {
  // 強(qiáng)制解析
  print( myString! )
}else{
  print("myString 值為 nil")
}

以上程序執(zhí)行結(jié)果為:

Hello, Swift!

自動(dòng)解析

你可以在聲明可選變量時(shí)使用感嘆號(hào)(!)替換問號(hào)(?)。這樣可選變量在使用時(shí)就不需要再加一個(gè)感嘆號(hào)(!)來獲取值,它會(huì)自動(dòng)解析。

實(shí)例如下:

import Cocoa

var myString:String!

myString = "Hello, Swift!"

if myString != nil {
  print(myString)
}else{
  print("myString 值為 nil")
}

以上程序執(zhí)行結(jié)果為:

Hello, Swift!

可選綁定

使用可選綁定(optional binding)來判斷可選類型是否包含值,如果包含就把值賦給一個(gè)臨時(shí)常量或者變量??蛇x綁定可以用在if和while語(yǔ)句中來對(duì)可選類型的值進(jìn)行判斷并把值賦給一個(gè)常量或者變量。

像下面這樣在if語(yǔ)句中寫一個(gè)可選綁定:

if let constantName = someOptional {
   statements
}

讓我們來看下一個(gè)簡(jiǎn)單的可選綁定實(shí)例:

import Cocoa

var myString:String?

myString = "Hello, Swift!"

if let yourString = myString {
  print("你的字符串值為 - \(yourString)")
}else{
  print("你的字符串沒有值")
}

以上程序執(zhí)行結(jié)果為:

你的字符串值為 - Hello, Swift!

文章標(biāo)題:詳解Swift可選(Optionals)類型
鏈接URL:http://www.dlmjj.cn/article/coijgdd.html