Есть ли лучший способ передать необязательные параметры методам в Scala? - PullRequest
0 голосов
/ 12 июля 2020

У меня есть следующий метод

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 Ответ

2 голосов
/ 12 июля 2020

Я думаю, что лучший способ сохранить гибкость - использовать перегрузку метода:

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

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

def getDefautValue: Boolean = ???

здесь вы можете переопределить getDefautValue, и вам не нужно переносить логический аргумент в Option. Но у вас могут возникнуть проблемы, если ваше логическое значение может быть null.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...