类型后 + ? 为可选型 在可选后加 ! 为强制解包(强制解包是有风险的 )应先判断不为空,如:
var errorCode: String? = "404"
print(errorCode as Any)
"The errorCode is" + errorCode!
if errorCode != nil {
"The errorCode is" + errorCode!
}else{
"asdf";
}
高级解包方法 if ... let (var) 解包
var errorMessage : String? = "Not fount";
if let errorCode = errorCode,let errorMessage = errorMessage {
"The errorCode is" + errorCode + "\nThe errorMessage is " + errorMessage
}
if 的一些其他功能在这里也适用
if let errorCode = errorCode ,
let errorMessage = errorMessage, errorCode == "404" ,errorMessage == "Not fount"{
"The errorCode is" + errorCode + "\nThe errorMessage is " + errorMessage
}
Optional Chaining
if let errorMessage = errorMessage {
errorMessage.uppercased()
}
/*
* 和 上边的if let表达式的效果是一样的
*/
errorMessage?.uppercased()
/*
* 也可以直接对表达式解包
*/
var uppercasedErrorMessage = errorMessage?.uppercased()
if var uppercasedErrorMessage = errorMessage?.uppercased(){
uppercasedErrorMessage
}
Nil Coalesce
// 1. 低端写法
let message1 : String
if let errormessagePlus = errorMessage {
message1 = errormessagePlus
}
// 2.三木运算写法
let message2 = errorMessagePlus == nil ? "No error" : errorMessagePlus
// 3.swift 高端写法
let message3 = errorMessagePlus ?? "No error"
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。