没有参数的案例类

时间:2016-12-17 03:10:03

标签: scala

object上的Scala文档评论:

  

实际上,没有类型参数的case类默认情况下会创建一个同名的单例对象,并实现Function*特征。

with a Function* trait implemented是什么意思?

1 个答案:

答案 0 :(得分:5)

*是案例类的基数;也就是说,它需要的参数数量。

把它放在一起:

case class Foo(a: Int, b: Long)

表示如下所示的代码:

class Foo(val a: Int, val b: Long) 

object Foo extends Function2[Int,Long,Foo] {
   def apply(a: Int, b: Long): Foo = new Foo(a,b)
}

上面的代码不完整,case类创建了很多其他帮助函数,如漂亮打印,不适用于模式匹配,结构相等测试等。