Scala模式匹配Scala类型系统Spark源码阅读
(文档来源:Spark IMF)
获取更多大数据Spark相关资料,请关注公众微信号:DT_Spark
Scala模式匹配、类型系统彻底精通与Spark源码阅读
一: 守卫
var ch = ‘+’
ch match {
case '+' => sign = 1
case '-' => sign = -1
case _ if Character.isDigit(ch) => digit = Character.digit(ch, 10)
case _ => sign = 0
}
二:模式中的变量
如果在case关键字后跟着一个变量名,那么匹配的表达式会被赋值给那个变量。case _是这个特性的一个特殊情况,变量名是_。
"Hello, world" foreach { c => println (
c match {
case ' ' => "space"
case ch => "Char: " + c
}
)}
三:类型模式
相比使用isInstanceOf来判断类型,使用模式匹配更好
obj match {
case x: Int => x
case s: String => Integer.parseInt(s)
case _: BigInt => Int.MaxValue
case _ => 0
}
捕获异常:
val file = new File(fileName)
try {