juan_gandhi: (VP)
Juan-Carlos Gandhi ([personal profile] juan_gandhi) wrote2013-07-16 04:26 pm
Entry tags:

scala option map fuckup

scala> def f(x:String) = null
f: (x: String)Null

scala> Some("abc") map f
res3: Option[Null] = Some(null)

[identity profile] lomeo.livejournal.com 2013-07-17 01:12 pm (UTC)(link)
Это же map, всё правильно, он структуру должен сохранять. Тут flatMap нужен
scala> def f(x:String) = null
f: (x: String)Null

scala> Some("abc") flatMap (x => Option(f(x)))
res0: Option[Null] = None

[identity profile] aliaksandr famin (from livejournal.com) 2013-07-17 08:13 pm (UTC)(link)
А в чем проблема Some(null)? "Значение существует, но оно равно null" не эквивалентно "значения не существует".