swift中双重问号的目的是什么?

Win*_*ero 90 ios swift

我见过这样的功能:

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

    // redraw the chart
    setNeedsDisplay();
}
Run Code Online (Sandbox Code Playgroud)

这里的目的是??什么?我搜索过,但似乎搜索??很难找到合适的答案.

mus*_*afa 141

它被称为零合并运算符.如果highs不是nil比它打开并返回的值.如果是零则[ChartHighlight]()返回.这是一种在可选项时提供默认值的方法nil.

  • 零合并算子a ?? b是!= nil的快捷方式?一个!:b (34认同)
  • 这非常方便.在Javascript中,您可以使用OR运算符来实现相同的效果,如下所示:var thisIsNeverNull = thisStringMightBeNull || "" (2认同)