Swift教程之解包 *** 作【感叹号的用法】

Swift教程之解包 *** 作【感叹号的用法】,第1张

概述//MARK:-----------可选类型!的用法------------/* 解包(!的用法)如果确定一个可选类型的对象的值一定存在,那么我们使用 !进行解包获取它的值,或者使用Optional Binding。*/let possibleString: String? = "An optional string."print(possibleString!) // 解包,我确定po
//MARK:-----------可选类型!的用法------------/* 解包(!的用法)如果确定一个可选类型的对象的值一定存在,那么我们使用 !进行解包获取它的值,或者使用Optional Binding。*/let possibleString: String? = "An optional string."print(possibleString!) // 解包,我确定possibleString的值一定存在,不需要每次验证值是否存在let stringValue = possibleString!.hashValue   //解包,这里的!表示“我确定这里的的possibleString一定是非nil的,尽情调用吧”//Optional Binding,等价于上面一行if let sValue = possibleString{    let stringValue = sValue.hashValue}/*考虑下这一种情况,我们有一个自定义的MyVIEwController类,类中有一个属性是myLabel,myLabel是在vIEwDIDLoad中进行初始化。因为是在vIEwDIDLoad中初始化,所以不能直接声明为普通值:var myLabel : UILabel,因为非Optional的变量必须在声明时或者构造器中进行初始化,但我们是想在vIEwDIDLoad中初始化,所以就只能声明为Optional:var myLabel: UILabel?虽然我们确定在vIEwDIDLoad中会初始化,并且在VIEwController的生命周期内不会置为nil,但是在对myLabel *** 作时,每次依然要加上!来强制拆包(?也OK),比如:myLabel!.text = "text"myLabel!.frame = CGRectMake(0,10,10)对于这种类型的值,我们可以直接这么声明:var myLabel: UILabel!,这种是特殊的Optional,称为Implicitly Unwrapped Optionals,直译就是隐式拆包的Optional,就等于说你每次对这种类型的值 *** 作时,都会自动在 *** 作前补上一个!进行拆包*///你可以把 隐式解包可选类型 当成对每次使用的时候自动解包的可选类型。即不是每次使用的时候 在变量/常量后面加!,而是直接在定义的时候加!let assumedString: String! = "An implicitly unwrapped optionalstring."print(assumedString)      //访问其值时无需感叹号/*总结 ! 使用场景强制对Optional值进行解包(unwrap)声明 隐式拆包的可选类型(Implicitly Unwrapped Optionals)值,一般用于类中的属性*/
总结

以上是内存溢出为你收集整理的Swift教程之解包 *** 作感叹号的用法】全部内容,希望文章能够帮你解决Swift教程之解包 *** 作【感叹号的用法】所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1086632.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存