Scala option类型和偏函数

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"))
  }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

涂作权的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值