Swift之可选型的解包

Objective-C转swift很重要的一点就是确定类型,今天给大家简单分享一下几种基础但重要的可选型解包方式

 //============1-2可选型的解包=============================================
var errcode2 : String? = "404"
var errMsg2 : String? = "我是错误消息"
print(errcode2)

//"The errCode2 is" + errcode2 //这句会报错  ,因为没解包

//第一种解包方式:强制解包,有出异常的风险
"The errCode2 is" + errcode2!  //这句不会报错,因为强制解包

//第二种解包方式 :靠 if else 判断
if errcode2 != nil{
    "The errCode2 is" + errcode2!
}else{
    "errCode2 is nil"
}

//第三种解包方式
if let unwrappedErrCode2 = errcode2{ //一般解包出来的值都是不做修改的,所以一般都用let
    "The errCode2 is" + unwrappedErrCode2
}

//第四种解包方式  第三种加强版
if let errcode2 = errcode2{ //一般解包出来的值都是不做修改的,所以一般都用let
    "The errCode2 is" + errcode2
}

//第五种解包方式  同时多个参数解包
if let errcode2 = errcode2 , errMsg2 = errMsg2 { //一般解包出来的值都是不做修改的,所以一般都用let
    "The errCode2 is" + errcode2
}

//第六种解包方式  同时多个参数解包
if let errcode2 = errcode2 , errMsg2 = errMsg2 where errcode2 == "404" { //一般解包出来的值都是不做修改的,所以一般都用let
    "The errCode2 is" + errcode2
}

//============1-3 Optional Chaining 和 Nil-Coalesce ============================================================
var errMsg3 : String? = "I am message!"


//方法一
if let errMsg3 = errMsg3{
    errMsg3.uppercaseString
}

//方法二
errMsg3?.uppercaseString

//强转
errMsg3!.uppercaseString

//第七种解包方法
if let errMsg3 = errMsg3?.uppercaseString{
    errMsg3
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容