Scala 模式匹配初步入门

时间:2022-02-08 05:49:37

1、代码

package com.yy.base

/**
 * Scala 模式匹配初步
 * 
 */
object PatternMatchTest extends App {
 
  println("------基本用法------")
  val data = 2
  data match{
    case 1 => println("1......")
    case 2 => println("2......")
    case _ => println("not matched......")
  }
  println("------添加守卫条件------")
  for(i <-1 to 10){
    i match{
      case 4 => println("4......")
      case num if(num%4==0) => println(num + "被4整除")
      case num if(num%5==0) => println(num + "被5整除")
      case 10 => println("10......")
      case _ =>
    }
  }
  
  println("------foreach------")
  "Hello Scala".foreach {
    x => println(
        x match{
          case ' ' => "空格"
          case ch => "字符:" + ch
        }
    )
  }
}
2、结果

------基本用法------
2......
------添加守卫条件------
4......
5被5整除
8被4整除
10被5整除
------foreach------
字符:H
字符:e
字符:l
字符:l
字符:o
空格
字符:S
字符:c
字符:a
字符:l
字符:a

从结果可以看出:scala 模式匹配不同于java中的switch:需要使用break控制,而scala中不需要。