亚洲国产爱久久全部精品_日韩有码在线播放_国产欧美在线观看_中文字幕不卡在线观看

Swift 可選類型的使用含代碼

Swift 可選類型的使用

可選類型是Swift編碼中的基本部分。愛掏網(wǎng) - it200.com可選類型的作用是將良好的代碼與不良的代碼分開,并避免崩潰。愛掏網(wǎng) - it200.com每種編程語言都有一些預(yù)防措施來避免崩潰。愛掏網(wǎng) - it200.com在這方面,Swift更加實用,可選類型可以使你的代碼無崩潰。愛掏網(wǎng) - it200.com ** .

enum Optional 

可選類型 是在使用可選值時使用的,即使您從未輸入過Optional這個單詞。愛掏網(wǎng) - it200.comSwift的類型系統(tǒng)通常會顯示包裝類型的名稱,然后跟一個問號(?),而不是顯示完整的類型名稱。愛掏網(wǎng) - it200.com

例如 ,如果一個變量的類型是 Int? ,它與寫作Optional是相同的,只是另一種簡潔的寫法,以使代碼易于閱讀和簡化。愛掏網(wǎng) - it200.com

請看以下示例。愛掏網(wǎng) - it200.com

在下面的代碼示例中,shortForm和longForm的類型是相同的:

let shortForm: Int? = Int("143")
Or
let longForm: Optional = Int("143") 
//Both are same 

Optional(可選類型)可以代表 沒有任何值有值 的情況。愛掏網(wǎng) - it200.com可選類型允許將 nil 作為沒有值的表示。愛掏網(wǎng) - it200.com可選類型是一個泛型枚舉,有兩個case:

  • Optional.none :等同于nil字面量。愛掏網(wǎng) - it200.com
  • Optional.some(Wrapped) :它存儲了一個包裝后的值。愛掏網(wǎng) - it200.com

示例

let number: Int? = Optional.some(143)
let noNumber: Int? = Optional.none
print(noNumber == nil)
// Prints "true"

輸出:

true

以上程序中的問號(?)表示它是一個可選變量。愛掏網(wǎng) - it200.com如果在變量聲明的末尾看到一個問號,那么它絕對是可選的,它可能包含一個值,也可能沒有。愛掏網(wǎng) - it200.com所以,在程序的某個部分,你不知道變量是否有值,那么標(biāo)記它為可選。愛掏網(wǎng) - it200.com

現(xiàn)在,看看這個示例:

這里我們試圖打印變量’numberOfStudents’的值。愛掏網(wǎng) - it200.com

var numberOfStudents : Int?
print(numberOfStudents!)

在這里,變量末尾的感嘆號(!)用于解包值。愛掏網(wǎng) - it200.com但是,如果嘗試執(zhí)行代碼,代碼將崩潰。愛掏網(wǎng) - it200.com那是因為你強制對一個沒有值的可選變量進行解包。愛掏網(wǎng) - it200.com如果變量中沒有值,程序?qū)⒈罎ⅰ?b class="xhide">愛掏網(wǎng) - it200.com

為變量設(shè)置一個值

如果在強制解包值之前給變量設(shè)置一個值,代碼就不會崩潰,但這不是一個良好的編碼實踐,是對可選變量的濫用。愛掏網(wǎng) - it200.com

var numberOfStudents : Int?
numberOfStudents = 30
print(numberOfStudents!)

輸出:

30

在強制解包可選項之前,您可以進行nil檢查。愛掏網(wǎng) - it200.com

示例:

var numberOfStudents : Int?
if numberOfStudents != nil {
print(numberOfStudents!)
}

現(xiàn)在,您的程序不會崩潰,因為您在對可選變量進行nil檢查之后才進行強制解包。愛掏網(wǎng) - it200.com

var numberOfStudents : Int?
if let studentCount = numberOfStudents {
print(studentCount) // It is same as print(numberOfStudents!)
}

上述方法將檢查可選變量’numberOfStudents’是否包含某個值。愛掏網(wǎng) - it200.com如果存在,則將其復(fù)制到一個稱為studentCount的常量中,然后只有代碼塊才會執(zhí)行。愛掏網(wǎng) - it200.com

強制解包

當(dāng)將變量定義為可選類型時,要從該變量中獲取值,就必須對其進行解包。愛掏網(wǎng) - it200.com強制解包是在變量末尾加上一個感嘆號的過程。愛掏網(wǎng) - it200.com

讓我們看一個示例來說明清楚。愛掏網(wǎng) - it200.com

示例:(在應(yīng)用強制解包之前)

var userString:String?
userString = "Hello World"
if userString != nil {
   print(userString)
} else {
   print("userString has nil value")
}

輸出: 當(dāng)您執(zhí)行上述代碼時,它將給出以下輸出:

Optional("Hello World")

示例:(應(yīng)用解包后)

現(xiàn)在,我們應(yīng)用解包以獲取變量的正確值。愛掏網(wǎng) - it200.com

 var userString:String?
userString = "Hello World"
if userString != nil {
   print(userString!)
} else {
   print("userString has nil value")
}

輸出:

Hello World

自動展開

自動展開提供了一種方式,其中可選變量使用感嘆號而不是問號聲明。愛掏網(wǎng) - it200.com通過這種方式,變量將自動展開,您無需在變量末尾使用任何進一步的感嘆號來獲取分配的值。愛掏網(wǎng) - it200.com

讓我們看一個示例。愛掏網(wǎng) - it200.com

示例

var userString:String!
userString = "Hello World"
if userString != nil {
   print(userString)
} else {
   print("userString has nil value")
}

輸出:

Hello World

Swift可選綁定

可選綁定用于判斷可選類型是否包含值,并在有值的情況下,將該值作為臨時常量或變量。愛掏網(wǎng) - it200.com您可以使用任何可選綁定控制結(jié)構(gòu),包括 if let、guard let 等。愛掏網(wǎng) - it200.com

讓我們舉個示例來看看 if 語句中的可選綁定:

示例

var userString:String?
userString = "Hello world"
if let myString = userString {
   print("The value of my string is - \(myString)")
} else {
   print("My string does not have a value")
}

輸出:

The value of my string is - Hello world

聲明:所有內(nèi)容來自互聯(lián)網(wǎng)搜索結(jié)果,不保證100%準(zhǔn)確性,僅供參考。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進行處理。
發(fā)表評論
更多 網(wǎng)友評論0 條評論)
暫無評論

返回頂部

亚洲国产爱久久全部精品_日韩有码在线播放_国产欧美在线观看_中文字幕不卡在线观看

    
    

    一区二区三区在线高清| 亚洲在线免费视频| 欧美日韩在线播放一区| 久久国产成人| 亚洲欧美久久久| 在线日本高清免费不卡| 国产精品午夜av在线| 欧美激情久久久| 久久久91精品| 小黄鸭视频精品导航| 一区二区国产日产| 亚洲国产清纯| 亚洲国产高清在线| 精品电影在线观看| 国产三区二区一区久久 | 欧美激情一区二区三区全黄| 久久精品综合| 欧美一区二区精美| 亚洲欧美日韩专区| 亚洲一区二区三区午夜| 一区二区日韩欧美| 99精品欧美一区| 一区二区三区.www| 夜夜嗨av一区二区三区网站四季av | 亚洲小视频在线| 激情综合在线| 在线日本成人| 亚洲福利国产精品| 亚洲欧洲偷拍精品| 亚洲精品国精品久久99热| 亚洲精品在线视频| 在线午夜精品| 亚洲欧美日韩国产精品| 香蕉久久国产| 久久久欧美一区二区| 久久蜜桃资源一区二区老牛| 麻豆精品91| 欧美区一区二区三区| 欧美三级日本三级少妇99| 国产精品xnxxcom| 国产免费成人在线视频| 国内精品**久久毛片app| 在线成人激情黄色| 亚洲乱码国产乱码精品精天堂| 日韩视频免费观看| 羞羞视频在线观看欧美| 老司机成人在线视频| 欧美激情精品久久久久久变态 | 99国产精品国产精品毛片| 亚洲欧美日韩区| 久久精品国产免费观看| 欧美精品1区2区| 国产精品亚洲第一区在线暖暖韩国| 国产一区二区中文| 亚洲日本va午夜在线电影| 亚洲一区二区三| 老司机精品视频一区二区三区| 欧美精品午夜| 国产一区视频在线观看免费| 91久久嫩草影院一区二区| 亚洲一区日韩在线| 免费久久精品视频| 国产精品成人一区二区| 在线欧美视频| 欧美一区二区免费视频| 欧美电影资源| 国产一区二区三区在线播放免费观看| 亚洲国产日韩欧美在线动漫| 午夜精品久久久久久久99热浪潮 | 国产亚洲午夜| 一区二区三区欧美亚洲| 卡通动漫国产精品| 国产精品亚洲综合天堂夜夜 | 一区二区高清在线观看| 久久综合免费视频影院| 国产伦精品一区二区三区在线观看 | 国产精品久久久久久av福利软件| 狠狠色狠狠色综合日日五| 亚洲欧美国产视频| 欧美精品一区视频| 伊人婷婷久久| 久久成人精品视频| 国产精品无码永久免费888| 99精品福利视频| 欧美激情精品久久久六区热门 | 麻豆视频一区二区| 国产一区二区电影在线观看| 一区二区三区四区国产精品| 欧美成人日韩| 亚洲人成在线观看网站高清| 欧美在现视频| 国产亚洲欧美一区二区三区| 亚洲手机在线| 欧美日韩中文在线观看| 一区二区黄色| 欧美视频免费看| 亚洲午夜激情免费视频| 欧美日韩精品系列| 一区二区三区成人精品| 欧美日韩免费观看一区二区三区| 亚洲激情视频网站| 欧美电影在线| 宅男精品导航| 国产乱理伦片在线观看夜一区| 亚洲一区免费在线观看| 国产日韩欧美制服另类| 欧美在线影院| 欧美亚洲三级| 亚洲一区二区在线观看视频| 国外成人在线| 亚洲老板91色精品久久| 欧美freesex8一10精品| 久久se精品一区二区| 一本色道久久加勒比精品| 1204国产成人精品视频| 日韩天天综合| 久久久久久一区二区三区| 欧美粗暴jizz性欧美20| 欧美高清视频在线播放| 欧美一区二区三区四区在线| 国产精品久久久久久久久免费 | 亚洲欧美区自拍先锋| 国产精品扒开腿做爽爽爽视频| 亚洲综合电影| 狠狠色综合一区二区| 欧美精品aa| 欧美一区二区三区的| 在线日韩电影| 国产精品久久久久婷婷| 久久综合精品一区| 中文久久精品| 亚洲国产高清一区二区三区| 欧美日韩一区二区免费视频| 久久精品国产亚洲一区二区三区| 亚洲精品乱码久久久久久| 国产伦理精品不卡| 欧美剧在线观看| 久久久久国产一区二区三区| 中文在线资源观看网站视频免费不卡 | 欧美精品一区二区三区在线看午夜 | 一区二区欧美国产| 亚洲国产精品电影| 国产欧美一区二区白浆黑人| 欧美另类亚洲| 美女视频黄 久久| 性久久久久久久久久久久| 亚洲精品1区| 激情综合激情| 国产一区二区毛片| 国产精品久久久久久影视 | 日韩视频三区| 亚洲国产成人精品女人久久久| 国产精品乱子久久久久| 欧美人与性动交α欧美精品济南到| 久久精品视频免费播放| 亚洲一级一区| 亚洲视频久久| 一区二区三区欧美激情| 亚洲日本va在线观看| 亚洲国产一区二区三区高清| 国产自产精品| 国产在线日韩| 狠狠色狠狠色综合系列| 国内在线观看一区二区三区| 国产精品中文在线| 国产精品久久久久久久9999| 欧美日韩成人综合在线一区二区 | 夜夜嗨av一区二区三区网页| 亚洲国产日韩在线| 亚洲三级免费观看| 99国产精品久久久久久久| 亚洲免费高清| 亚洲视屏在线播放| 亚洲欧美日韩精品久久久| 亚洲免费网站| 久久久久国产免费免费| 免费看成人av| 欧美精品一区在线| 国产精品日韩欧美综合| 国产区亚洲区欧美区| 激情欧美一区二区三区在线观看| 影音先锋久久资源网| 亚洲国产乱码最新视频| 99精品视频免费| 亚洲欧美久久久久一区二区三区| 羞羞视频在线观看欧美| 久久永久免费| 欧美日韩1234| 国产模特精品视频久久久久| 一区二区亚洲| 亚洲图片激情小说| 欧美一区二区观看视频| 免费观看不卡av| 国产精品v欧美精品v日韩精品| 国产热re99久久6国产精品| 在线观看欧美黄色| 在线亚洲免费| 久久这里有精品视频| 欧美午夜视频| 国产亚洲精品aa午夜观看|