大数据系列修炼-Scala课程27
2016-09-15 11:34
218 查看
大数据系列修炼-Scala课程27
核心内容:
1、Type模式匹配实战解析
2、Array模式匹配实战实战解析
3、List模式匹配实战解析
4、Tuple模式匹配实战解析
实例程序:
运行结果:
如有问题,欢迎留言指正!
核心内容:
1、Type模式匹配实战解析
2、Array模式匹配实战实战解析
3、List模式匹配实战解析
4、Tuple模式匹配实战解析
1、scala中模式匹配在具体类型(数组类型、List、元组)中的实际应用 |
object App { def main(args:Array[String]):Unit= { //模式匹配的简单应用 var i = readInt() i match { case 1 => println("one") case 2 => println("two") case 3 => println("three") case _ => println("others") } println("-------------------------") //模式匹配的具体应用---具体类型(Type)的模式匹配(结合函数) def fun1(t:Any)= t match { case p: String => println("字符串类型!内容是:"+p) //在模式匹配中可以提取出匹配的数值 case p: Int => println("整型类型!") case p: Double => println("双精度类型!") case p: Map[_,_] => p.foreach(println) //注意占位符在Map映射中的应用 case _ => println("others!") } fun1("spark") fun1(10) fun1(2.0) fun1(Map("zhang"->88.8)) fun1(Array(10,20)) println("-------------------------") //模式匹配的具体应用---数组类型(Array)的模式匹配(结合函数) def fun2(arr:Any)= arr match { case Array(0) => println("数组中含有一个元素,这个元素为0") case Array(x,y) => println("数组中含有两个元素") //注意正则表达x与y的应用 case Array(0,_*) => println("数组中至少含有一个元素,并且首元素为0") //注意正则表达式_*的应用 case _ => println("others") } fun2(Array(0)) fun2(Array(10,20)) fun2(Array(0,10,30)) fun2("spark") println("-------------------------") //模式匹配的具体应用---List类型(list)的模式匹配(结合函数) def fun3(list:Any) = list match { case 0::Nil =>println("List中只含有一个元素,这个元素为0") case _::_::Nil =>println("List中含有两个元素") //_::_::Nil 可以换成x::y::Nil case 0::tail => println("list中至少含有一个元素,并且首元素为0") case _ => println("others") } fun3(List(0)) fun3(List(10,20)) fun3(List(0,10,20)) fun3(List("zhang")) println("-------------------------") //模式匹配的具体应用---元组类型(Tuple)的模式匹配(结合函数) def fun4(tuple:Any) = tuple match { case (0,_) => println("元组中含有两个元素,并且首元素为0") case (_,_) => println("元组中含有两个元素") case (x,0) => println("元组中含有两个元素,第二个元素为0") case _ => println("others") } fun4((0,10)) fun4((10,20)) fun4((10,0)) //注意本行的输出:间接说明了scala中模式匹配的优点 fun4("zhang") } }
运行结果:
2 two ------------------------- 字符串类型!内容是:spark 整型类型! 双精度类型! (zhang,88.8) others! ------------------------- 数组中含有一个元素,这个元素为0 数组中含有两个元素 数组中至少含有一个元素,并且首元素为0 others ------------------------- List中只含有一个元素,这个元素为0 List中含有两个元素 list中至少含有一个元素,并且首元素为0 others ------------------------- 元组中含有两个元素,并且首元素为0 元组中含有两个元素 元组中含有两个元素 others
如有问题,欢迎留言指正!
相关文章推荐
- 大数据系列修炼-Scala课程35
- 大数据系列修炼-Scala课程48
- 大数据系列修炼-Scala课程64
- 大数据系列修炼-Scala课程09
- 大数据系列修炼-Scala课程68
- 大数据系列修炼-Scala课程42
- 大数据系列修炼-Scala课程16(1)
- 大数据系列修炼-Scala课程52
- 大数据系列修炼-Scala课程62
- 大数据系列修炼-Scala课程11
- 大数据系列修炼-Scala课程24(1)
- 大数据系列修炼-Scala课程21
- 大数据系列修炼-Scala课程10
- 大数据系列修炼-Scala课程03
- 大数据系列修炼-Scala课程02
- 大数据系列修炼-Scala课程08
- 大数据系列修炼-Scala课程46
- 大数据系列修炼-Scala课程50
- 大数据系列修炼-Scala课程69
- 大数据系列修炼-Scala课程19