iOS Swift4.0 可选值

Swift 可选(Optionals)类型的定义

Swift 的可选(Optional)类型,用于处理值缺失的情况。可选表示"有值 “或者"没有值”。
Swfit语言定义后缀?作为命名类型Optional的简写

var str: String?      //
let num: Int? = 10   // 申明可选Int类型的常量,初始值为10

可选(Optional) 的拆包

  1. 显式拆包
    Optional 类型的值不能被直接使用,当需要用时要显示拆包,以表明我知道这个 Optional 是一定有值的:
var str: String? = "Hello World!"
print(str!)//Hello World! 

之所以要拆包使用,是因为 Optional 类型其实是一个枚举:

enum Optional<T> : Reflectable, NilLiteralConvertible {
    case None
    case Some(T)
    init()
    init(_ some: T)

    /// Haskell's fmap, which was mis-named
    func map<U>(f: (T) -> U) -> U?
    func getMirror() -> MirrorType
    static func convertFromNilLiteral() -> T?
}
  1. 隐式拆包
    除了显示拆包之外, Optional 还提供了隐式拆包,通过在声明时的数据类型后面加一个感叹号(!)来实现
var str: String! = "Hello World!"
print(str) //Hello World!

  1. 空运算符
    可以用来判断变量或常量是否为nil
// 空合运算符:a ?? b 判断a是否为nil,若a不为nil对a解包,否则返回b的值
var num: Int? // 申明可选Int类型的变量num,初始值为nil
num ?? 0 // 因为num为nil,则返回0
// ?? 即为以下if else的缩写
func testOption() -> Int {
    let num: Int? = 1
    if num == nil {
        return 0
    } else {
        return num!
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值