2015-06-15 4 views
51

Ich habe solche Funktion gesehen:was ist der Zweck der doppelten Fragezeichen in schnellen

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

    // redraw the chart 
    setNeedsDisplay(); 
} 

Was ist der Zweck der ?? hier? Ich suchte, aber es scheint ?? Suche ist schwer, eine richtige Antwort zu finden.

Antwort

87

Es heißt kein Koaleszenz-Operator. Wenn highs nicht nil ist, wird es ausgepackt und der Wert zurückgegeben. Wenn es Null ist, dann [ChartHighlight]() zurückgegeben. Es ist eine Möglichkeit, einen Standardwert anzugeben, wenn ein Optional nil ist.

+2

perfekt. Nicht Englisch Muttersprachler, es ist nicht einfach zu suchen ... – Wingzero

+14

Der Null-Koaleszenz-Operator a ?? b ist eine Abkürzung für a! = nil? ein! : b –

+0

Vielen Dank für Ihre Erklärung. – Raja