【问题标题】:what's the purpose of double question mark in swift [duplicate]swift中双问号的目的是什么[重复]
【发布时间】:2015-06-15 03:51:41
【问题描述】:

我见过这样的功能:

public func highlightValues(highs: [ChartHighlight]?)
{
    // set the indices to highlight
    _indicesToHightlight = highs ?? [ChartHighlight]();

    // redraw the chart
    setNeedsDisplay();
}

?? 这里的目的是什么?我搜索了,但似乎搜索?? 很难找到正确的答案。

【问题讨论】:

    标签: ios swift


    【解决方案1】:

    它被称为 nil 合并运算符。如果highs 不是nil,则将其解包并返回值。如果为 nil,则返回 [ChartHighlight]()。这是一种在可选项为nil 时提供默认值的方法。

    【讨论】:

    • 零合并运算符 a ?? b 是 a != nil 的快捷方式?一个! : b
    • 感谢您的解释。
    • 这非常方便。在 Javascript 中,您可以使用 OR 运算符来实现相同的目的,如下所示: var thisIsNeverNull = thisStringMightBeNull || ""
    • 使用 ?? 保证一个对象不会为零是好事。感谢您的回答。
    • 为了清楚起见:如果a = falsea ?? b 将返回false
    猜你喜欢
    • 2021-11-09
    • 2019-05-05
    • 2019-05-30
    • 1970-01-01
    • 2021-07-23
    • 2012-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多