joe 发表于 2021-10-18 10:28:26

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使用了集合的方法,也使用了模式匹配。

joe 发表于 2021-10-19 08:27:25

    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]
查看完整版本: Option的map filter foreach用法