case class定义 在实例化case class类时,不需要使用关键字New,case class类编译成class文件之后会自动生成apply方法,这个方法负责对象的创建。通过JD-GUI工具可以查看编译后的.class文件(有兴趣的可以自己看下)。Scala自动为Book生成了apply静态方法,里面调用了Book$类的apply方法用来生成Book对象。Book$类的截图 c...
object Case extends App { case class person(name: String, age: Int) { def sayHi: Unit = println(s"Hi, my name is $name, I am $age years old") } val amy = person("Amy", 12) println(amy.name) } case class 自动生成toString,toString可以省略,直接使用实例名字也可以 ///case class...
abstractclassPersons(name:String) //构造器中参数如果没有被声明为var,则默认为val类型 caseclassStudent(name:String,age:Int,stuentNo:Int)extendsPersons(name) caseclassTeacher(name:String,age:Int,teacherNo:Int)extendsPersons(name) caseclassNobody(name:String)extendsPersons(name) objectCaseClass { defmai...
case class有一个好的特性就是它会在它的伴生对象中自动生成unapply方法,用于模式匹配. 如果没有unapply方法, 类将无法进行模式匹配, 关于unapply方法的写法可见如下代码示例: sealed trait Pet object Pet { final class Dog(val name: String) extends Pet {} final class Cat(val name: String) extends Pet ...
case class Number(num:Double) extends Expr case class UnOp(operator:String, arg:Expr) extends Expr case class BinOp(operator:String,left:Expr,right:Expr) extends Expr 这里我们定义了一个抽象类Expr和四个子类(分别代表变量,数值,单操作符,双操作符),Scala允许我们不定义类的实现,实际...
以下是一个示例,展示了如何在case类上使用ScalaTest进行参数化测试和断言: 代码语言:txt 复制 import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should.Matchers case class MyClass(param1: Int, param2: String) class MySpec extends AnyFlatSpec with Matchers { val testData = List...
没有参数的case类将被声明为case对象而不是case类。 默认情况下,case对象是可序列化的。 代码语言:javascript 代码运行次数:0 运行 AI代码解释 caseclassCaseClass2(a:Int)extendsSuperTrait// Case classcaseobject CaseObjectextendsSuperTrait// Case object ...
可序列化,自动实现了 Serializable 接口case class 构造函数的参数就是可访问的字段objectCaseextendsApp{...
一个模式匹配语句包括一个待匹配的值,match关键字,以及至少一个case语句。示例如下: def matchTest(x: Int):String= x match {case1=>"one"case2=>"two"case_ =>"many"} case class的匹配 abstractclassNotificationcaseclassEmail(sender:String, title:String
public final class com.mobin.scala.Person$ extends scala.runtime.AbstractFunction2<java.lang.String, java.lang.Object, com.mobin.scala.Person> implements scala.Serializable { public static final com.mobin.scala.Person$ MODULE$; public static {}; ...