Это то, что REPL's для!
scala> case class Foo(bar: String)(val baz: String)
defined class Foo
scala> val foo1 = Foo("goo")("snoo")
foo1: Foo = Foo(goo)
scala> foo1.baz
res0: String = snoo
Но следует помнить, что baz
здесь не участвует в copy
equals
, hashCode
или toString
(как вы видите выше), поэтому использовать дополнительные списки параметров конструктора класса случая с осторожностью.
Кроме того, это не «вторичный конструктор».
Доказательство
package here {
case class Foo(bar: String)(val baz: String)
}
package there {
import here._
object SnooSnoo {
def main(args: Array[String]): Unit = {
val foo2 = Foo("flew")("too")
println(s"foo2=$foo2; foo2.baz=${foo2.baz}")
}
}
}
% sbt
> run
[info] Compiling 1 Scala source to /Users/rschulz/Projects/scribble/target/scala-2.10/classes...
[info] foo2=Foo(flew); foo2.baz=too
[success] Total time: 5 s, completed Jan 4, 2014 2:07:14 PM
Coorect. IDEA не соответствует языку, поскольку ScalaIDE. –
Тогда почему вы тратили много времени на то, чтобы сказать мне вещи, совершенно не относящиеся к проблеме, и спорить по терминологии? – user1063042
Помимо тега, где вы упомянули IDEA? –