使用Option初始化Scala变量

Duc*_*Duc 3 scala

我有这个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对象时设置它?谢谢

vpt*_*ron 7

我认为你不能在主构造函数中做到这一点.这是一个替代方案:

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)