模式匹配公式:
变量 : match {
case 值1 => 代码1
case 值2 => 代码2
case _ => 代码2
}
一、代码Demo
package com.soul.matchs
import scala.util.Random
object MatchApp {
def main(args: Array[String]): Unit = {
val a = Array("鹅", "秃", "渣")
val r = a(Random.nextInt(a.length))
say(r)
}
def say(name: String) = name match {
case "鹅" => println("鸟叔")
case "秃" => println("秃叔")
case _ => println("SB")
}
}
二、Scala中的模式匹配处理异常
package com.soul.matchs
object Match1App {
def main(args: Array[String]): Unit = {
try {
val a = 1 / 0
} catch {
case e: ArithmeticException => throw new RuntimeException("除数不能为0")
case e: Exception => e.printStackTrace()
} finally {
println("finally")
}
}
}
三、Scala函数
package com.soul.matchs
import com.soul.matchs.MatchApp.say
import scala.util.Random
object Match2App {
def main(args: Array[String]): Unit = {
val a = Array("鹅", "秃", "渣")
val r = a(Random.nextInt(a.length))
println(say(r))
}
//偏函数 入参 出参
def say: PartialFunction[String, String] = {
case "鹅" => "鸟叔"
case "秃" => "秃叔"
case _ => "SB"
}
}
网友评论