六、Swift可选型与拆解包

六、Swift可选型与拆解包,第1张

概述可选类型(?)  /*  这个值要么存在, 并且等于x, 要么不存在  */ 举个例子  由于toInt方法可能会失败,因此它会返回一个可选的Int类型,而不同于Int类型。一个可选的Int类型被记为Int?,不是Int。问号表明它的值是可选的,可能返回的是一个Int,或者返回的值不存在。 这里写let possibleNumber = "123"let convertedNumber: Int

可选类型(?)
/*
这个值要么存在,并且等于x,要么不存在
*/

@H_404_8@ 举个例子
由于toInt方法可能会失败,因此它会返回一个可选的Int类型,而不同于Int类型。一个可选的Int类型被记为Int?,不是Int。问号表明它的值是可选的,可能返回的是一个Int,或者返回的值不存在。

这里写let possibleNumber = "123"let convertednumber: Int? = possibleNumber.toInt()
1 2 1 2 @H_404_8@ 可选类型类似于Objective-C中指针的nil值,但是nil只对类(class)有用,指对象不存在,而Swift的 nil 不是指针,它代表特定类型的值不存在。任何类型的可选类型都能赋值为 nil,而不仅限于对象类型。并且更安全。

var responseCode: Int? = 404    //要么存在,且值为404responseCode = nil              //要么不存在,可以赋值为nil表示不存在
swift中“nil”的使用:
/*
1.Swift里面nil 不能用于非可选类型
2.如果代码中的常量或者变量需要适配值不存在的情况,务必将它声明为恰当的可选类型
3.如果定义的可选类型的对象不提供默认值,该对象将自动设为nil
*/

//var strValue = nil //错误var strValue: String? = "hello"
1 2
//let hashValue = strValue.hashValue    //错误。对于Optional值,不能直接进行 *** 作hashValue = strValue?.hashValue     //问号的意思是询问可选量是否响应后面这个方法
/*
总结 ? 的使用场景
1.声明Optional变量
2.用在Optional值 *** 作中,用来判断是否响应后面的 *** 作
*/

@H_404_8@ 解包(!)
/*
如果确定一个可选类型的对象的值一定存在,那么我们使用 !进行解包获取它的值,或者使用Optional Binding。
*/
举个例子

let possibleString: "An optional string"println(possibleString!)    //解包,我确定possibleString的值一定存在,不需要每次都验证他的值是否存在let stringValue = possibleString!.hashValue //必须解包,才能获取可选量的属性或者方法《==》//Optional Binding,等价于上面一行if let sValue = possibleString {    let stringValue = sValue.hashValue}
1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 @H_404_8@ 隐式解包的可选类型
/*
你可以把 隐式解包可选类型 当成对每次使用的时候自动解包的可选类型。即不是每次使用的时候 在变量/常量后面加!,而是直接在定义的时候加!
*/

let assumedString: String! = "An implicitly unwrapped optional string"println(assumedString) println(assumedString.hashValue)
1 2 3 1 2 3 @H_404_8@ /*
总结!的使用场景
1.强制对 可选量 进行解包
2.声明 隐式解包的可选类型的时候,一般用于类中的属性

*/


原文地址:http://blog.csdn.net/rolandman_/article/details/43730623

总结

以上是内存溢出为你收集整理的六、Swift可选型拆解包全部内容,希望文章能够帮你解决六、Swift可选型与拆解包所遇到的程序开发问题。

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

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

原文地址: https://outofmemory.cn/web/1067809.html

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

发表评论

登录后才能评论

评论列表(0条)

保存