= x match {
case null => 0
case s => 42 + s
s.map(foo).map(bar) =? s.map(foo andThen bar)
—————————
1)
s: Int|Null = 2
s.map(foo) = null
null.map(bar) == 0
s.map(foo andThen bar) == 0
2) s: Int|Null = null
s.map(foo) == null
null.map(bar) == 0
s.map(foo andThen bar) == 0
—————————
implicit class Q(x: T|Null) {
def map[K](f: T => K): K|Null =
if (x == null) null else f(x)
}
null.map(f: T => K) == null
либо я чего-то не понял в аргументации "почему так нельзя", либо таки можно
не очень понял как null.map(bar) == 0 ?
Обсуждают сегодня