小编Mat*_*kko的帖子

Scala案例类复制方法的区别在于2.9和2.10之间

以下代码在Scala 2.9.1中编译:

scala> case class Foo(a: String)(val b: Int = 1)
defined class Foo

scala> val foo = Foo("some")(2)
foo: Foo = Foo(some)

scala> foo.copy("another")()
res1: Foo = Foo(another)
Run Code Online (Sandbox Code Playgroud)

但是在2.10.3中我们得到以下错误:

scala> foo.copy("another")()
<console>:11: error: not enough arguments for method copy: (b: Int)Foo.
Unspecified value parameter b.
          foo.copy("another")()
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么这会改变吗?除了foo.copy("另一个")之外,我还想知道是否有一些聪明的方法可以做到这一点(foo.b)

scala case-class scala-2.10

6
推荐指数
1
解决办法
144
查看次数

标签 统计

case-class ×1

scala ×1

scala-2.10 ×1