Search code examples
scalafunctional-programmingjvmcurryingcase-class

How can I have curried case class constructors?


I wrote the following:

case class SuperMessage(message: String)(capitalMessage: String = message.capitalize)
val message = "hello world"
val superMessage = SuperMessage(message)()

but I can't do superMessage.capitalMessage

What's going on?


Solution

  • Parameters from the second parameter list of a case class are not vals by default.

    Try

    case class SuperMessage(message: String)(val capitalMessage: String = message.capitalize)