美文网首页
Scala基础——模式匹配

Scala基础——模式匹配

作者: _羊羽_ | 来源:发表于2019-08-19 15:52 被阅读0次

match

当需要从多个分支进行选择的场景,类似Java中的switch语句,不需要使用break停止代码执行。

变量 match {
      case value1 => 代码1
      case value2  => 代码2
      ...
      case _ => 代码N
}

eg:

import scala.util.Random
object MatchApp extends  App{
   val numbers = Array("one","two","three")
   val number = numbers(Random.nextInt(numbers.length))
  number match {
    case "one" => println("1")
    case "two" => println("2")
    case _ => println("3")
  }
}
image.png

在模式匹配的case语句中,还可以使用变量。当colorNum=4时,值4会被传递给number变量。

object MathApp  {
  def main(args: Array[String]): Unit = {
    val colorNum = 4
    val colorStr = colorNum match {
      case 1 => "red"
      case 2 => "yellow"
      case 3 => "green"
      case number => number+" is Unknown"
    }
    println(colorStr)
  }
}

case类

在定义一个类的,如果在class 关键字前面加上case关键字,该类是case类

package cn.bx.scala

case class Car (brand:String,price:Int)

object CaseClassApp {
  def main(args: Array[String]): Unit = {
    val bydCar =new Car("BYD",80000)
    val bmwCar =new Car("BMW",300000)
    val benzCar =new Car("Benz",500000)
    for(car <-List(benzCar,bmwCar,bydCar)){
      car match {
        case Car("BYD", 80000) => println("Hello, BYD!")
        case Car("BMW", 300000) => println("Hello, BMW!")
        case Car(brand, price) => println("Brand:"+ brand +", Price:"+price+", do you want it?")
      }
    }
  }
}

执行结果

Brand:Benz, Price:500000, do you want it?
Hello, BMW!
Hello, BYD!

相关文章

  • Scala基础——模式匹配

    match 当需要从多个分支进行选择的场景,类似Java中的switch语句,不需要使用break停止代码执行。 ...

  • Scala模式匹配及偏函数

    模式匹配公式: 一、代码Demo 二、Scala中的模式匹配处理异常 三、Scala函数

  • Scala学习笔记(八) 模式匹配

    1. 模式匹配简介 模式匹配是 Scala 的重要特性之一,前面两篇笔记Scala学习笔记(六) Scala的偏函...

  • Scala基础(8)- 模式匹配

    Scala强大的模式匹配机制,可以应用在switch语句、类型检查以及“析构”等场合。样本类对模式匹配进行了优化。...

  • Case Class与模式匹配

    模式匹配入门 在java语言中存在switch语句,例如: 上述scala代码展示了如何使用scala中的模式匹配...

  • Scala编程基础25:Scala模式匹配

    Scala提供了强大的模式匹配机制,应用非常广泛。一个模式匹配包含了一系列备选项,每个备选项都开始于关键字case...

  • Scala入门与进阶(五)- 模式匹配

    6.模式匹配 1.最基础的模式匹配 Java: 对一个值进行条件判断,返回针对不同的条件进行不同的处理 Scala...

  • scala模式匹配

    以下是常见的scala模式匹配实例。 variableName @ pattern 下面这个示例 模式匹配中cas...

  • scala模式匹配

    1.scala是匹配和java中的switch的区别: ...

  • scala 模式匹配

    scala的模式匹配与java的switch case相似,但是switch case只能对值进行判断,scala...

网友评论

      本文标题:Scala基础——模式匹配

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