Начиная с Scala 2.13
, немного более безопасное решение (которое обрабатывает пустые списки) будет состоять в использовании minOption
/ maxOption
, который возвращает None
, если последовательность пуста:
List(34, 11, 98, 56, 43).zipWithIndex.minOption.map(_._2)
// Option[Int] = Some(1)
List[Int]().zipWithIndex.minOption.map(_._2)
// Option[Int] = None
Таким образом, вы также можете решить использовать откат по умолчанию, если список пуст:
List(34, 11, 98, 56, 43).zipWithIndex.minOption.map(_._2).getOrElse(-1)
// Int = 1
List[Int]().zipWithIndex.minOption.map(_._2).getOrElse(-1)
// Int = -1