Я немного занимаюсь гимнастикой Скала, где у меня есть Seq[T]
, в которой я пытаюсь найти «самый маленький» элемент. Вот что я делаю прямо сейчас:
val leastOrNone = seq.reduceOption { (best, current) =>
if (current.something < best.something) current
else best
}
Это прекрасно работает, но я не совсем доволен - это немного долго для такой простой вещи, и Меня не очень волнует "если"s. Использование minBy
было бы гораздо более элегантным:
val least = seq.minBy(_.something)
... но min
и minBy
создают исключения, когда последовательность пуста. Существует ли идиоматический, более элегантный способ найти наименьший элемент возможно пустого списка в качестве варианта ?