- ловят они такое или нет?
def go(flag:Boolean):Option[Int] = {
if(flag){
Option(5)
}else {
Option(10)
}
.map(_ * 2)
}
println(go(true)) //Some(5)
println(go(false)) //Some(20)
а что они должны были поймать?
То, что человек хотел применить .map ко всему результату if как к относительно "цельной логической конструкции", а не к конкретному блоку.
так может хотел не ко всему
Это как раз область стат анализаторов. И в случае конкретно одного выражения - никто не пишет { Option(10) }.map, а скорее пишут { Option(10).map }. Поэтому именно в таком виде не вызывает сомнений, что челик хотел ко всему логическому блоку
замените if else на fold из mouse и будет счастье
Обсуждают сегодня