溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

05.swift ?可選類型

發(fā)布時間:2020-06-03 11:36:06 來源:網(wǎng)絡(luò) 閱讀:337 作者:光光ing 欄目:移動開發(fā)

import UIKit

// 類中所有的屬性在對象初始化時,必須有初始化值

class Person : NSObject {

    var name : String?

    var view : UIView?

}


// 1.定義可選類型

// 1>普通定義可選類型的方式

// var name : Optional<String>

// 2>語法糖

var name : String?


// 2.給可選類型賦值

name = "why"



// 3.從可選類型中取值

// Optional("why")

print(name)

// 從可選類型中取值:可選類型!-->強制解包

//print(name!)



// 4.注意:如果可選類型中沒有值,那么強制解包程序會崩潰

// 強制解包是非常危險的操作:建議在解包前先判斷可選類型中是否有值

if name != nil {

    print(name!)

    

    print(name!)

    

    print(name!)

}



// 5.可選綁定

// 1> 判斷name是否有值,如果沒有值,則不執(zhí)行{}.

// 2> 如果有值,則對可選類型進行解包,并且將解包后的值賦值給前面的常量

//if let tempName = name {

//    print(tempName)

//}


if let name = name {

    print(name)

    print(name)

    print(name)

    print(name)

}






/*

 可選值: optionals有兩種狀態(tài):

 1.有值 2.沒有值, 沒有值就是nil

 */


//有值:

var optValue1: Int? = 9

//沒有值:

var optValue2: Int?

var optValue3: Int? = nil


/*

 可選值可以利用if語句來進行判斷

 */

var optValue4: Int?

if optValue4 != nil

{

    print(optValue4)

}else

{

    print(optValue4)

}


/*

 提取可選類型的值(強制解析)

 會將optValue中的整型值強制拿出來賦值給變量result, 換句話說就是告訴編譯器optValue一定有值, 因為可選類型有兩種狀態(tài)有值和沒有值, 所以需要告訴編譯器到底有沒有值

 需要注意的是如果強制解析optValue, 但是optValue中沒有值時會引發(fā)一個運行時錯誤

 */

var optValue5: Int? = 9

var result1: Int = optValue5!

print(result1)


//報錯:

var optValue6: Int?

var result2: Int = optValue6!

print(result2)


/*

 可選綁定:

 為了更安全的解析可選類型的值, 一般情況下使用可選綁定

 如果optValue沒有值就不會做任何操作, 如果optValue有值會返回true并將optValue的值賦值給result執(zhí)行大括號中的內(nèi)容

 */

var optValue: Int? = 9

if let result3 = optValue

{

    print(result3)

}


可選類型的使用

let urlString = "http://www.520it.com"


// 1.普通寫法

let url : NSURL? = NSURL(string: urlString)

if url != nil {

    let request = NSURLRequest(URL: url!)

}


// 可選綁定

if let url = url {

    let request = NSURLRequest(URL: url)

}


// 可選綁定的簡介寫法

if let url = NSURL(string: urlString) {

    let request = NSURLRequest(URL: url)

}


向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI