Чтобы получить позицию значения в списке в Scala, вы можете использовать несколько методов. Вот несколько примеров:
Метод 1: indexOf
Метод indexOfвозвращает индекс первого вхождения указанного значения в списке. Если значение не найдено, возвращается -1.
val myList = List(1, 2, 3, 4, 5)
val value = 3
val position = myList.indexOf(value)
println(position) // Output: 2
Метод 2: indexWhere
Метод indexWhereвозвращает индекс первого элемента, удовлетворяющего заданной функции предиката.
val myList = List(1, 2, 3, 4, 5)
val value = 3
val position = myList.indexWhere(_ == value)
println(position) // Output: 2
Метод 3: zipWithIndex
Метод zipWithIndexсвязывает каждый элемент списка с его индексом, а затем вы можете искать значение в полученном списке кортежей.
val myList = List(1, 2, 3, 4, 5)
val value = 3
val position = myList.zipWithIndex.find(_._1 == value).map(_._2)
println(position) // Output: Some(2)
Метод 4: CollectFirst
Метод collectFirstищет первый элемент в списке, который удовлетворяет частичной функции, и возвращает соответствующий индекс.
val myList = List(1, 2, 3, 4, 5)
val value = 3
val position = myList.zipWithIndex.collectFirst { case (v, idx) if v == value => idx }
println(position) // Output: Some(2)