У нас есть Some, None в Scala, и мне нужен третий с именем Default. Идея заключается в следующем:
Некоторые означают, что есть некоторая ценность
«Нет» означает отсутствие ценности. Не используйте ценность.
По умолчанию (моя индивидуальная вещь) означает, что пользователь хочет, чтобы я применил некоторые встроенные значения по умолчанию.
Он должен действовать как None (т.е. совместим с Option), и я буду относиться к Default особым образом в своих подпрограммах. Я посмотрел на: Scala: что-то вроде Option (Some, None), но с тремя состояниями: Some, None, Unknown
Я не хочу полностью затенять Some, None моими пользовательскими типами. Я хочу, чтобы пользователь мог их использовать и в определенных случаях применять мои собственные значения по умолчанию.
@Michael Zajac дал несколько вариантов, я думаю, что первый довольно хорош.
Я мог бы встроить Some, None и искусственный, как
case object DefaultParamHere {
def apply(): Option[String] = {
Some("Substitute me we default framework value, please")
}
}
Спасибо!
так что вариант использования будет:
case class Application(artifact: Artifact,
mainClass: Class[_],
jvmMemory: Option[Memory] = None,
jvmOpts: Option[String] = DefaultParamHere(),
applicationConfiguration: List[String] = Nil) extends Stage
getOrElse(myDefault)
? - person Yuval Itzchakov   schedule 27.11.2016Option
запечатан, поэтому вы не можете его продлить. Может быть, вам стоит создать еще один слой, то есть еще один класс-оболочку - person Raphael Roth   schedule 27.11.2016def foo[T](default: T)
, и использовать его как запасной вариант для вашегоOption[T]
- person Yuval Itzchakov   schedule 27.11.2016