C# null 合体演算子 '??' の実装をどこかで見つけました。
implicit def coalescingOperator[T](pred: T) = new {
def ??[A >: T](alt: =>A) = if (pred == null) alt else pred
}
a ?? b
その後、 which meansのように使用できますif (a == null) b else a
。
クラス ファイルを逆コンパイルした後、リフレクションを含むコードが生成されることがわかりました (Scala 2.8.1)。
リフレクションを生成する理由と、リフレクションを生成しないようにそのコードを変更することは可能ですか?