美文网首页
Scala模式匹配及偏函数

Scala模式匹配及偏函数

作者: 喵星人ZC | 来源:发表于2019-11-05 22:25 被阅读0次

模式匹配公式:

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

}

相关文章

网友评论

      本文标题:Scala模式匹配及偏函数

      本文链接:https://www.haomeiwen.com/subject/tqfybctx.html