Null Coalescing Operator
Null Coalescing Operator、日本語だとヌル結合演算子と訳すのかな?
func doSomething(queue: dispatch_queue_t? = nil, handler: () -> Void) -> Void { dispatch_async(queue ?? dispatch_get_main_queue()) { handler() } }
こんな感じの関数があったとして、queueを渡さずに実行するとdispatch_asyncの引数のところでNull Coalescing Operatorたる「??」が評価されます。こいつは左項がnilじゃなかったら左、nilだったら右を返す比較演算子。知らなかったのでWikipediaで調べたら、C#やPHP、Pythonなどそろって書いたことのない言語が。