有没有更好的方法将可选参数传递给Scala中的方法?

时间:2020-07-12 07:50:33

标签: scala

我有以下方法

def myMethod(val overrideValue: Option[Boolean] = None): Int = {
    val myValue = overridenValue.getOrElse(getDefautValue())
    // do something else
}

如果我想使用默认值,我会这样调用方法 myMethod()

如果要覆盖该值,则调用类似myMethod(Some(true))myMethod(Some(false))这样的方法。

有没有一种更好的方法可以忽略Some(..)

1 个答案:

答案 0 :(得分:2)

我认为保存灵活性的更好方法是使用方法重载:

def myMethod: Int = {
  myMethod(getDefautValue())
}

def myMethod(argumentFlag: Boolean): Int = {
    // to do something with argumentFlag
}

def getDefautValue: Boolean = ???

在这里您可以覆盖getDefautValue,并且不需要将布尔参数包装到Option中。但是,如果布尔值可以为null,则可能会遇到一些问题。

相关问题