本节主要内容
- 模式匹配入门
- Case Class简介
- Case Class进阶
1. 模式匹配入门
在java语言中存在switch语句,例如:
//下面的代码演示了java中switch语句的使用
public class SwitchDemo {
public static void main(String[] args) {
for(int i = 0; i < 100; i++) {
switch (i) {
case 10:System.out.println("10");
break;
//在实际编码时,程序员很容易忽略break语句
//这容易导致意外掉入另外一个分支
case 50:System.out.println("50");
case 80:System.out.println("80");
default:
break;
}
}
}
}
scala解决了java语言中存在的这个问题,scala解决这一问题的利器就是模式匹配,上面的java代码可以利用scala语言的模式匹配来避免,代码如下:
object PatternMatching extends App{
for(i<- 1 to 100){
i match {
case 10 => println(10)
case 50 => println(50)
case 80 => println(80)
case _ =>
}
}
}
上述scala代码展示了如何使用scala中的模式匹配,它的实现方式是通过match关键字与 case X=>的方式实现的,其中case _表示除了 case 10,case 50,case 80的其余匹配,类似于java中的default。但scala语言中提供了更为灵活的匹配方式,如:
object PatternMatching extends App{
for(i<- 1 to 100){
i match {
case 10 => println(10)
case 50 => println(50)
case 80 => println(80)
//增加守卫条件
case _ if(i%4==0)=> println(i+":能被4整除")
case _ if(i%3==0)=> println(i+":能被3整除")
case _ =>
}
}
}
case语言中还可以加相应的表达式,例如:
object PatternMatching