本文主要是介绍05、Optional相关,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
05、Optional相关
- 1、使用技巧
- 1.1 if let
- 1.2 guard let
- 1.3 ??
- 1.4 force unwrapping
- 2、Optioanl-实现探究
1、使用技巧
1.1 if let
如果我们要表达“当optional不等于nil时,则执行某些操作”这样的语义
写法一:
var number:Int? = 1
if number != nil{print(number!)
}写法二:
if let number = number {print(number)
}
1.2 guard let
func test() {guard let number = number else { //如果为nil直接返回return}print(number)
1.3 ??
如果我们希望在optional的值为nil时设定一个默认值
var name:String? = nil
let result = name ?? "未填写姓名"
1.4 force unwrapping
对于一个optional变量来说,可以用!来强行读取optional包含的值,Swift管它叫作`force unwrapping。然而,这种操作并不安全,强制读取值为nil的optional会引发运行时错误。
2、Optioanl-实现探究
Optional其实是标准库里面的一个enum类型
public enmum Optional<Wrapped> : ExpressibleByNilLiteral {case none case some(Wrapped)public init(_ some:Wrapped) ....
}
Optional.none就是nil
Optioanl.some则包装了实际的值。
var str:Optional<String> = "abc"
if let actualStr = str {let count = actualStr.countprint(count)
}
这篇关于05、Optional相关的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!