Fork me on GitHub

Swift中optionals使用总结

Github链接:https://github.com/andyRon/LearnSwift/blob/master/Tips/Swift中optionals使用总结.md

  1. 变量声明
1
2
3
4
let optional: String? = "unicorn"
var optional2: Int?
let optionals: [String?] = ["unicorn", nil, "dragon"]
var optionals2: [Int]?
  1. 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") {
  1. guard
1
2
3
guard let value = optional else { 
return
}
  1. while
1
while let value = optional {
  1. 空合运算((Nil Coalescing)
1
let value = optional ?? "nil"
  1. 强制解析
1
let value = optional!
  1. switch
1
2
3
4
5
6
switch optional {
case .some(let value):
print(value)
case .none:
print("nil")
}
  1. map()
1
let value = optional.map(String.init(describing:))
  1. flatMap()
1
let value = optional.flatMap(URL.init(string:))
  1. compactMap()
1
let values = optionals.compactMap { $0 }
  1. 类型转换
1
let value = optional as! String
  1. 可选链
1
let value = optional?.uppercased()
  1. for
1
2
for element in optionals {
if let value = element {
  1. for case let
1
for case let optional? in optionals {
  1. forEach
1
optionals?.forEach { value in
  1. 错误转换成optional
1
2
try? aThrowingCall()
try! aThrowingCall()

参考: https://www.optionals.org

坚持原创技术分享,您的支持将鼓励我继续创作!
  • 本文标题: Swift中optionals使用总结
  • 本文作者: AndyRon
  • 发布时间: 2019年07月29日 - 13:40
  • 最后更新: 2019年09月02日 - 10:18
  • 本文链接: http://andyron.com/2019/swift-optionals.html
  • 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!
0%