How to write a proper null-safe coalescing operator in scala?
Like so: case class ?:[T](x: T) { def apply(): T = x def apply[U >: Null](f: T => U): ?:[U] = if (x == null) ?:[U](null) else ?:[U](f(x)) } And in action: scala> val x = ?:(“hel”)(_ + “lo “)(_ * 2)(_ + “world”)() x: java.lang.String = hello hello world scala> val x = ?:(“hel”)(_ … Read more