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

我见过这样的function:

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

这是什么目的?? 这里? 我search,但似乎寻找?? 很难find合适的答案。

它被称为零合并运算符。 如果highs不是nil ,那么它就被解开并返回值。 如果是零,则返回[ChartHighlight]() 。 当可选项nil时,这是一种给出默认值的方法。