您好,登錄后才能下訂單哦!
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是否有值,如果沒有值,則不執行{}.
// 2> 如果有值,則對可選類型進行解包,并且將解包后的值賦值給前面的常量
//if let tempName = name {
// print(tempName)
//}
if let name = name {
print(name)
print(name)
print(name)
print(name)
}
/*
可選值: optionals有兩種狀態:
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一定有值, 因為可選類型有兩種狀態有值和沒有值, 所以需要告訴編譯器到底有沒有值
需要注意的是如果強制解析optValue, 但是optValue中沒有值時會引發一個運行時錯誤
*/
var optValue5: Int? = 9
var result1: Int = optValue5!
print(result1)
//報錯:
var optValue6: Int?
var result2: Int = optValue6!
print(result2)
/*
可選綁定:
為了更安全的解析可選類型的值, 一般情況下使用可選綁定
如果optValue沒有值就不會做任何操作, 如果optValue有值會返回true并將optValue的值賦值給result執行大括號中的內容
*/
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)
}
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。