2015-06-15 19 views
51

ho visto tale funzione:qual è lo scopo del doppio punto interrogativo in rapida

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

    // redraw the chart 
    setNeedsDisplay(); 
} 

Qual è lo scopo di ?? qui? Ho cercato, ma sembra cercare ?? è difficile trovare una risposta adeguata.

risposta

87

Si chiama nil operatore a coalescenza. Se highs non è nil allora viene scartato e viene restituito il valore. Se è zero, viene restituito [ChartHighlight](). È un modo per dare un valore predefinito quando un opzionale è nil.

+2

perfetto. Non madrelingua inglese, searcing non è facile ... – Wingzero

+14

L'operatore a coalescenza nulla a ?? b è una scorciatoia per a! = nil? un! : b –

+0

Grazie per la spiegazione. – Raja

Problemi correlati