Pri*_*ain 1 functional-programming scala
我println对下面的代码中的第3个有点困惑,其中输出是None.根据我的理解:
lookupPlayer(3)将给出None哪个是子类型Option[Nothing]map在None将被调用.但是工作的map功能如何None?请帮我理解一个简单的例子.
case class Player(name: String)
def lookupPlayer(id: Int): Option[Player] = {
if (id == 1) Some(new Player("Sean"))
else if(id == 2) Some(new Player("Greg"))
else None
}
def lookupScore(player: Player): Option[Int] = {
if (player.name == "Sean") Some(1000000) else None
}
println(lookupPlayer(1).map(lookupScore)) // Some(Some(1000000))
println(lookupPlayer(2).map(lookupScore)) // Some(None)
println(lookupPlayer(3).map(lookupScore)) // None
Run Code Online (Sandbox Code Playgroud)