scala中模式匹配的应用

Scala 复制代码
package test34

object test6 {

    case class Person(name:String)
    case class Student(name:String, className:String)

    // match case 能根据 类名和属性的信息,匹配到对应的类
    // 注意:
    // 1 匹配的时候,case class的属性个数要对上
    // 2 属性名不需要一一对应
    def main(args: Array[String]): Unit = {
        val p1 = Persom("小花")
        val s1 = Student("小明","2(3)班")

        val a:Any = p1
        a match {
            case Person(nm) => println("普通人类", nm)
            case Student(name.className) => println(className,"的学生", name)
            case _ => println("其他")
        }
    }
}
Scala 复制代码
object test7 {
    // 需求:现在有一个数组Array(1,2,3,4),我希望能定义三个变量,它们的值分别是数组中的第1,2,3个元素的值
    def main(args: Array[String]): Unit = {
        val arr = Array(1,2,3,4,5)
    // 第一个元素的值: arr(0)
    // println(arr(0))
    // var x = arr(0)
    // var y = arr(1)
    // var z = arr(2)
    // println(x,y,z)
    // 有一个更简单的方式

    // 模式匹配
    var Array(x,y,z. _*) = arr
    println(x)
    println(y)
    println(z) 
    }
}
相关推荐
fmdpenny26 分钟前
Vue3初学之商品的增,删,改功能
开发语言·javascript·vue.js
栗豆包28 分钟前
w175基于springboot的图书管理系统的设计与实现
java·spring boot·后端·spring·tomcat
涛ing41 分钟前
21. C语言 `typedef`:类型重命名
linux·c语言·开发语言·c++·vscode·算法·visual studio
等一场春雨1 小时前
Java设计模式 十四 行为型模式 (Behavioral Patterns)
java·开发语言·设计模式
黄金小码农1 小时前
C语言二级 2025/1/20 周一
c语言·开发语言·算法
萧若岚1 小时前
Elixir语言的Web开发
开发语言·后端·golang
wave_sky2 小时前
解决使用code命令时的bash: code: command not found问题
开发语言·bash
Channing Lewis2 小时前
flask实现重启后需要重新输入用户名而避免浏览器使用之前已经记录的用户名
后端·python·flask
Channing Lewis2 小时前
如何在 Flask 中实现用户认证?
后端·python·flask
水银嘻嘻2 小时前
【Mac】Python相关知识经验
开发语言·python·macos