/** * Option类型中的模式匹配 * Option类型有两个子类,分别是Some和None(单例对象) * None是一个case object,它同Some一样都extends Option类,只不过Some是case class, * 对于case class我们已经很熟悉了,那case object又是怎么样的呢? * 对比反编译之后的代码可以看出,case object与case class所不同的是: * case object对应反编译后的CaseObject$.class中不存在apply、unapply方法, * 这是因为None不需要创建对象及进行内容提取,从这个角度讲,它被定义为case object是十分合理的。 */ object OptionDemo { def main(args: Array[String]): Unit = { val map = Map("hadoop" -> 1, "spark" -> 2, "flink" -> 3) //scala语言可以在一个函数中定义另外一个函数 def mapPattern(key: String): Unit = { //get(key)方法中,通过key值获取与之相对应的value值 map.get(key) match { case Some(x)=>println(x);x case None=>println("None");-1 } } println(mapPattern("hive")) println(mapPattern("spark")) } }
Scala中的模式匹配——Option类型中的模式匹配
最新推荐文章于 2024-04-22 14:05:01 发布