Scala模式匹配及偏函数

2019-11-05  本文已影响0人  喵星人ZC

模式匹配公式:

变量 : 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"
  }

}

上一篇下一篇

猜你喜欢

热点阅读