# Optional 可选值

作者: MarkusFeng | 来源:发表于2015-12-17 15:20 被阅读56次
  • Optional 是 Swift 的一大特色,也是 Swift 初学者最容易困惑的问题
  • 定义变量时,如果指定是可选的,表示该变量可以有一个指定类型的值,也可以是 nil
  • 定义变量时,在类型后面添加一个 ?,表示该变量是可选的
  • 变量可选项的默认值是 nil
  • 常量可选项没有默认值,主要用于在构造函数中给常量设置初始数值
//: num 可以是一个整数,也可以是 nil,注意如果为 nil,不能参与计算
let num: Int? = 10
  • 如果 Optional 值是 nil,不允许参与计算
  • 只有解包(unwrap)后才能参与计算
  • 在变量后添加一个 !,可以强行解包

注意:必须要确保解包后的值不是 nil,否则会报错

//: num 可以是一个整数,也可以是 nil,注意如果为 nil,不能参与计算
let num: Int? = 10

//: 如果 num 为 nil,使用 `!` 强行解包会报错
let r1 = num! + 100

//: 使用以下判断,当 num 为 nil 时,if 分支中的代码不会执行
if let n = num {
    let r = n + 10
}

常见错误

unexpectedly found nil while unwrapping an Optional value

翻译

在[解包]一个可选值时发现 nil

?? 运算符

  • ?? 运算符可以用于判断 变量/常量 的数值是否是 nil,如果是则使用后面的值替代
  • 在使用 Swift 开发时,?? 能够简化代码的编写
let num: Int? = nil

let r1 = (num ?? 0) + 10
print(r1)

相关文章

  • optional可选值

    在Swift中, 变量(常量)可能有值,可能为 nil ,称为可选使用?标识某个值是一个可选值 可选项的值不能直接...

  • # Optional 可选值

    Optional 是 Swift 的一大特色,也是 Swift 初学者最容易困惑的问题 定义变量时,如果指定是可选...

  • Swift学习—Optional

    Optional(可选值类型) optional是在swift中引入的新的数据类型,它的特点就是可选值。顾名思义就...

  • Swift:(五)可选类型

    Swift 可选(Optionals)类型 Swift 的可选(Optional)类型,用于处理值缺失的情况。可选...

  • Swift:基础(五)可选类型

    Swift 可选(Optionals)类型 Swift 的可选(Optional)类型,用于处理值缺失的情况。可选...

  • Swift 可选(Optionals)类型

    Swift 可选(Optionals)类型Swift 的可选(Optional)类型,用于处理值缺失的情况。可选表...

  • Swift可选值(Optional Values)以及?和!使用

    Optional(可选类型) Optional是Swift中引入的新类型. 表示可以有值也可以没值. 当它没值时,...

  • 可选链式调用

    可选链式调用(Optional Chaining)wiki 可选链式调用:是一种可以在当前值可能为nil的可选值请...

  • Swift 数据类型

    1.可选类型:Optional 使用可选类型来处理值可能缺失的情况。可选类型表示有值或没有值。 2.类型别名 类型...

  • Swift学习-基础01

    1.可选类型 Swift 的可选(Optional)类型,用于处理值缺失的情况。可选表示"那儿有一个值,并且它等于...

网友评论

    本文标题:# Optional 可选值

    本文链接:https://www.haomeiwen.com/subject/znrphttx.html