Swif - 可選型

//: Playground - noun: a place where people can playswift

 

import UIKit安全

 

var str = "Hello, playground"spa

 

//可選型 Optional指針

 

var errorCode:Int = 404it

var errorCode1:Int? = 404io

 

errorCode = 0class

 

//直接賦值nilimport

errorCode = nil變量

var color:UIColor = nilsed

 

//可選型概念

errorCode1 = nil

var color2:UIColor? = nil//color2能夠是一個UIColor 也能夠是nil

errorCode1 = errorCode

 

 

print(errorCode1)

 

 

 

var errorCode:String? = "404"

print(errorCode)

 

//可選型是不能直接被使用的,swift安全的體現,防止空指針

errorCode += "The"

 

//Unwrap 解包 (可選型須要被解包後才能使用)

errorCode! += "The"//強制解包 (在可選型的後面直接添加"!"

 

errorCode

 

//新語法進行解包

if let errorCode = errorCode {

    errorCode + " The "

}

else {

    "NO error"

}

 

var errorMessage:String? = "Not found"

 

//一次解包多個變量

 

 

if let errorCode = errorCode,

   let errorMessage = errorMessage {

    "The errorCode is " + errorCode + "\nThe errorMessage is" + errorMessage

}

 

 

//Optional Chaining

 

var erroMessage:String? = "Not found"

if let errorMeaage = erroMessage {

    errorMeaage.uppercased()

}

 

//這就是Option Chinaining 鏈條方式

erroMessage?.uppercased()//和上面的意思同樣

 

 

var uppercaseErrorMessage = erroMessage?.uppercased()

if let errorMessage = erroMessage?.uppercased() {

    erroMessage

}

 

//nil coalesce

 

//1.不安全

var errorMessage:String? = nil

 

let message: String

if let errorMessage = errorMessage {

    message = errorMessage

}

else {

    message = "no error"

}

 

 

//2

let message2 = errorMessage == nil ? "No error" : errorMessage

 

//3.nil coalesce

let message3 = errorMessage ?? "No error"//雙問號

 

//以上三種方式結果同樣

 

 

 

//可選型在元組中的使用

var error1:(errorCode:Int, errorMessage:String?) = (404, "Not Found")

error1.errorMessage = nil

 

//可選型現實中的應用

var ageInput: String = "16"

var age = Int(ageInput)

if let age = Int(ageInput) , age < 20 {

    print("You're a teenager!")

}

 

//隱式可選型

 

 

 

var errorMessage:String? = nil

errorMessage = "Not found"

"The message is " + errorMessage!

 

//隱式可選型

var errorMessage1:String! = nil

errorMessage1 = "Not found"

 

"The messgae is " + errorMessage1

相關文章
相關標籤/搜索