1. Option类型
在Scala中Option类型样例类用来表示可能存在或也可能不存在的值(Option的子类有Some和None)。Some包装了某个值,None表示没有值
package cn.toto.scala.day2
/**
* Created by toto on 2017/7/1.
*/
object OptionDemo {
//运行结果是:
// 2
// 0
def main(args: Array[String]): Unit = {
val map = Map("a" -> 1,"b" -> 2)
val v = map.get("b") match {
case Some(i) => i
case None => 0
}
println(v)
//更好的方式,下面表示如果有返回c的值,如果没有的话就使用默认的0
val v1 = map.getOrElse("c",0)
println(v1)
}
}
2. 偏函数
被包在花括号内没有match的一组case语句是一个偏函数,它是PartialFunction[A, B]的一个实例,A代表参数类型,B代表返回类型,常用作输入模式匹配
package cn.toto.scala.day2
/**
* Created by toto on 2017/7/1.
*/
object PartialFuncDemo {
//这里使用的中括号,但是没有match,这种叫做偏函数
def func1 : PartialFunction[String,Int] = {
case "one" => 1
case "two" => 2
case _ => -1
}
/**
* 模式匹配,不是偏函数
* @param num
* @return
*/
def func2(num : String) : Int = num match {
case "one" => 1
case "two" => 2
case _ => -1
}
def main(args: Array[String]): Unit = {
//偏函数效果
println(func1("one"))
//模式匹配的效果
println(func2("one"))
}
}