Дополнительно
Скала: в логический параметр
У меня есть логическое и хотели бы избежать этой схеме:
if (myBool)
Option(someResult)
else
None
Что я'd, как сделать
myBool.toOption(someResult)
Любые предложения с Пример кода будет высоко ценится.
60
9
Scalaz есть способ сделать это с BooleanOps.Вариант. Что позволит вам писать :
Если вы Don'т хотите добавить Scalaz зависимостей, добавьте следующую строку в ваш код :
Начиная
Скала 2.13
,вариант
имеетwhen
Builder для этой цели:Например:
Также обратите внимание Option
.unless
, который способствует противоположное состояние.Вариант().собирать () - хороший шаблон для такого рода вещей.
в REPL:
Ни один из других ответов ответить на вопрос как заявлено! Для того чтобы получить точную семантику вы указали использовать:
Затем вы можете написать
например:
Если вы Don'т ум someResult `
быть оценены независимо от значения
myBool` вы также можете использоватьДругой выбор:
Использование:
Здесь, охранник держит состояние и значение, переданное в
condOpt
- это значение, возвращаемое в случае, если охранник имеет значение true.Это даст вам:
Вот несколько вещей, которые я хотел бы рассмотреть:
или