加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift:Optional的无用默认值?

发布时间:2020-12-14 04:29:05 所属栏目:百科 来源:网络整理
导读:我正在创建一个这样的函数: func foo(bar: UInt? = 0) { let doSomething = someOtherFunc(bar!)} 如果我传递给foo()一个零值,我希望在打开它时使用默认值0,而不是我在解开一个Optional值时意外发现nil意外发现nil 我错在哪里? 解决方法 仅当您未提供参数
我正在创建一个这样的函数:

func foo(bar: UInt? = 0) {
  let doSomething = someOtherFunc(bar!)
}

如果我传递给foo()一个零值,我希望在打开它时使用默认值0,而不是我在解开一个Optional值时意外发现nil意外发现nil

我错在哪里?

解决方法

仅当您未提供参数时,才使用默认值= 0
对于可选参数:

func foo(bar: UInt? = 0) {
    println(bar)
}

foo(bar: nil) // nil
foo(bar: 1)   // Optional(1)
foo()         // Optional(0),default value used

如果您打算将传递的nil值替换为0
那么你可以使用nil-coalescing运算符??:

func foo(bar: UInt?) {
    println(bar ?? 0)
}

foo(nil) // 0
foo(1)   // 1

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读