scala中的提取器

简介: 提取器是从传递给它的对象中提取出构造该对象的参数。(回想样例类进行模式匹配提取参数)scala 提取器是一个带有unapply方法的对象。==unapply方法算是apply方法的反向操作==unapply接受一个对象,然后从对象中提取值,提取的值通常是用来构造该对象的值
提取器(Extractor)

提取器是从传递给它的对象中提取出构造该对象的参数。(回想样例类进行模式匹配提取参数)scala 提取器是一个带有unapply方法的对象。==unapply方法算是apply方法的反向操作==unapply接受一个对象,然后从对象中提取值,提取的值通常是用来构造该对象的值。
在这里插入图片描述

在这里插入图片描述

示例:

class Student10 {
  var name:String = _   // 姓名
  var age:Int = _       // 年龄
  
  // 实现一个辅助构造器
  def this(name:String, age:Int) = {
    this()
    
    this.name = name
    this.age = age
  }
}

object Student10 {
  def apply(name:String, age:Int): Student10 = new Student10(name, age)

  // 实现一个解构器
  def unapply(arg: Student10): Option[(String, Int)] = Some((arg.name, arg.age))
}

object extractor_DEMO {
  def main(args: Array[String]): Unit = {
    val zhangsan = Student10("张三", 20)

    zhangsan match {
      case Student10(name, age) => println(s"姓名:$name 年龄:$age")
      case _ => println("未匹配")
    }
  }
}
目录
相关文章
|
Java Scala
160 Scala 映射
160 Scala 映射
38 0
|
6月前
|
分布式计算 Java 大数据
Scala01 —— Scala基础
Scala 是一种基于 JVM 的多范式编程语言,它融合了面向对象和函数式编程的特点。本文档介绍了Scala的基础知识,包括如何搭建开发环境、语言特性、变量和数据类型、程序逻辑、运算符、控制流、集合以及方法和函数的使用。特别强调了Scala集合的重要性,它们作为数据结构支持多种操作,并且有许多内置的算子和库来解决问题。文档还涵盖了如何在IDEA中配置Scala SDK,以及如何使用元组、映射、数组和模式匹配等核心概念。此外,文档还讨论了Scala与Java变量的区别,以及如何通过隐式类和字符串插值等扩展语言功能。
53 6
Scala01 —— Scala基础
|
6月前
|
Scala
Scala综合练习_基于以下List集合实现词频统计
Scala综合练习_基于以下List集合实现词频统计
48 0
|
Ubuntu Java 大数据
|
Java 编译器 Scala
【Scala】(四)Scala 基础之变量、数据类型
【Scala】(四)Scala 基础之变量、数据类型
179 0
【Scala】(四)Scala 基础之变量、数据类型
|
Java Scala
Scala的存在类型
Scala的存在类型
|
Java Scala
Scala教程之:scala的参数
Scala教程之:scala的参数