您的位置:首页 > 移动开发 > Swift

swift 系统学习 05 聚合(空合)解包 链式解包 可选型和元组的结合

2017-03-01 14:15 381 查看
//: Playground - noun: a place where people can play

import UIKit

/*
* 本节内容:
* 1.可选型的nil聚合(Nil-Coalescing)解包
* 2.可选型的链式(Optional Chaining)解包
* 3.可选型和元组的结合
*/

var errorMessage: String?
// 需求: 如果可选型有值, 获取非nil的值; 如果为nil, 给定默认的值
// 使用三目运算符实现需求, 结果:errorMsg是String?
let errorMsg = errorMessage == nil ? "No Error" : errorMessage
print(errorMsg)

// nil聚合解包: 实现需求, 又包含解包的过程
let errorMsgNew = errorMessage ?? "No Error"

// 需求:对象的属性是可选型(对象), 调用可选型对象的方法(前提这个可选型不能为nil)
// 可选型的链式表达: 不需要判断该可选型是否为nil
errorMessage?.uppercased()

// 可选型和元组结合
var tupleOne: (errorCode: Int, errorMessage: String?) = (404, "Not Found")
// tupleOne不是可选型, 不能赋值nil
// tupleOne = nil
tupleOne.errorMessage = nil
var tupleTwo: (errorCode: Int, errorMessage: String)? = (404, "Not Found")
tupleTwo = nil
// tupleTwo?.errorMessage = nil
var tupleThree: (errorCode: Int, errorMessage: String?)? = (404, "Not Found")
tupleThree = nil
tupleThree?.errorMessage = nil

var newMessage: String?
newMessage = "hello" // 初始化/赋值
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息