我有这个scala案例类:
case class Foo
(bar: String,
original_bar: Option[String] = None)
Run Code Online (Sandbox Code Playgroud)
我想默认设置original_bar = bar(所以original_bar总是默认为Some(bar)),例如:
case class Foo
(bar: String,
original_bar: Option[String] = Some(bar))
Run Code Online (Sandbox Code Playgroud)
但我得到:没找到:价值吧,我也尝试了一些(Foo.bar)但没有运气.有没有办法在case类中设置默认值,或者我必须在初始化Foo对象时设置它?谢谢
我认为你不能在主构造函数中做到这一点.这是一个替代方案:
case class Foo(bar: String, original_bar: Option[String])
object Foo {
def apply(bar: String): Foo = new Foo(bar, Some(bar))
}
Run Code Online (Sandbox Code Playgroud)