Scala: Как найти минимум более 2 элементов? - PullRequest
0 голосов
/ 02 января 2019

Поскольку функция Math.min () позволяет использовать только 2 элемента, мне было интересно, есть ли еще одна функция, которая может рассчитать минимум более 2 элементов.

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 02 января 2019

Добавьте все числа в коллекции, как список, и найдите минимум.

scala> val list = List(2,3,7,1,9,4,5)
list: List[Int] = List(2, 3, 7, 1, 9, 4, 5)

scala> list.min
res0: Int = 1
0 голосов
/ 02 января 2019

Если у вас есть несколько элементов, вы можете просто связать вызовы метода min:

Math.min(x, Math.min(y, z))

Поскольку scala добавляет метод a min к числам с помощью имплицитов, вы можете написать следующее, что выглядит намного более изящно:

x min y min z

Если у вас есть список значений и вы хотите найти их минимум:

val someNumbers: List[Int] = ???
val minimum = someNumbers.min

Обратите внимание, что это вызывает исключение, если список пуст. Начиная с scala 2.13.x, будет существовать метод minOption , который будет корректно обрабатывать такие случаи. Для более старых версий вы можете использовать метод reduceOption в качестве обходного пути:

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