Github链接:https://github.com/andyRon/LearnSwift/blob/master/Tips/Swift中optionals使用总结.md
- 变量声明
1
2
3
4
|
let optional: String? = "unicorn"
var optional2: Int?
let optionals: [String?] = ["unicorn", nil, "dragon"]
var optionals2: [Int]?
|
- if let
1
2
3
4
5
6
7
|
if let value = optional {
// 多变量
if let value = optional, let value2 = optional2 {
// 布尔值判断从句(boolean clause)
if let value = optional, value.hasSuffix("saurus") {
|
- guard
1
2
3
|
guard let value = optional else {
return
}
|
- while
1
|
while let value = optional {
|
- 空合运算((Nil Coalescing)
1
|
let value = optional ?? "nil"
|
- 强制解析
- switch
1
2
3
4
5
6
|
switch optional {
case .some(let value):
print(value)
case .none:
print("nil")
}
|
- map()
1
|
let value = optional.map(String.init(describing:))
|
- flatMap()
1
|
let value = optional.flatMap(URL.init(string:))
|
- compactMap()
1
|
let values = optionals.compactMap { $0 }
|
- 类型转换
1
|
let value = optional as! String
|
- 可选链
1
|
let value = optional?.uppercased()
|
- for
1
2
|
for element in optionals {
if let value = element {
|
- for case let
1
|
for case let optional? in optionals {
|
- forEach
1
|
optionals?.forEach { value in
|
- 错误转换成optional
1
2
|
try? aThrowingCall()
try! aThrowingCall()
|
参考: https://www.optionals.org
文章作者
andyron
上次更新
2024-07-16
许可协议
原创文章,如需转载请注明文章作者和出处。谢谢!