Option的map filter foreach用法
通常,我们对集合类使用map,filter,foreach,但Option也有map,filter,foreach方法,实验如下:println("----------Option的map,filter,foreach用法----------")
val map = Map("France"->"Paris", "Japan"->"Tokyo", "China"->"Beijing")
val name = map.get("China")
println(name) //Some(Beijing)
val mapname = name.map(f=>f+"map")
println(mapname) //Some(Beijingmap)
val filtername = name.filter(f=>f.substring(0,1) > "D")
println(filtername) //None
val foreachname = name.foreach{
case s:String => s + "foreach"
}
println(foreachname) //()
val name2 = map.get("China2") //None
println(name2)
val mapname2 = name2.map(f=>f+"map")
println(mapname2) //None
val filtername2 = name2.filter(f=>f.substring(0,1) > "D")
println(filtername2)//None
val foreachname2 = name2.foreach {
case s:String => s + "foreach"
}
println(foreachname2) //()
也就是说,我们的实验对Option使用了集合的方法,也使用了模式匹配。
val map = Map("zs"->10,"lisi"->12)
val g = map.get("zs")
println(if(g.isDefined) g.get else "None value") //10
println(if(g.isEmpty) "empty" else g.get) //10
println(g.getOrElse("null")) //10
println(g.get) //10
val g1 = map.get("szxxx")
println(if(g1.isDefined) g1.get else "None value") //None value
println(if(g1.isEmpty) "empty" else g1.get) //empty
println(g1.getOrElse(30)) //30
val map1 = Map(1->10,2->20)
val g2 = map1.get(1)
println(g2.isDefined) //true
println(g2.isEmpty) //false
页:
[1]