Scala option类型和偏函数

来源:互联网 发布:linux 开发Android 编辑:程序博客网 时间:2024/06/05 07:33

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"))  }}
原创粉丝点击