6

scala中是否有(或将在最近的功能中)可以创建带有命名参数的案例类?我的意思是使用构造函数中的命名参数来构造案例类对象。

我的案例课程有很多领域。具有大量未命名参数的构造函数很容易出错。

我想得到(目前不工作的例子):

case class X(x0:String, x1:Int, x2:String)
val x = X(x0="Xstring", x1=12, x2="x2String")

作为解决方法,我们可以提供如下摘录所示的工厂方法,但这是一个丑陋的解决方案:

case class X(x0:String, x1:Int, x2:String)
object X {
    private nullX = X(null, null, null)
    def createX = nullX.copy _
}

val x = X.createX(x0="Xstring", x1=12, x2="x2String")

有什么线索吗?:)

编辑:这是旧版本的 intellij idea scala 插件中的错误。请不要再投票了;)

4

1 回答 1

13

Scala 2.8中引入了命名参数和默认参数

Welcome to Scala version 2.9.1.final (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_27).
Type in expressions to have them evaluated.
Type :help for more information.

scala> case class X(x0:String, x1:Int, x2:String)
defined class X

scala> val x = X(x0="Xstring", x1=12, x2="x2String")
x: X = X(Xstring,12,x2String)
于 2012-08-20T12:42:46.400 回答