次のマップ拡張機能があります
object ImplicitMap {
implicit def extendMap(m : Map[String,Any]) = new MapExtension(m)
}
class MapExtension(m : Map[String,Any]) {
def +?(conditional:Boolean)(pair:(String,Any)):Map[String,Any] =
if (conditional) m + pair
else m
}
この関数を使用すると、Boolean のコンパイル時エラーが発生しますが、パラメーターを取りませんが、記述された明示的なテスト (次のように) は正しく機能します
test ("Map +?") {
def +?(conditional:Boolean)(pair:(String,Any)):Map[String,Any] = if (conditional) Map.empty + pair else Map.empty
+?(true)("hi" -> 2) should equal (Map("hi" -> 2))
}