Например, у меня есть список Scala, я хочу получить подсписку, пока не будет выполнено требование.Элементы коллекции Scala выбирают до тех пор, пока первый не встретит требование
val list = Seq(1,2,3,4,5,5,4,1,2,5)
Требование является число 5, поэтому я хочу, результат, как:
Seq(1,2,3,4)
В настоящее время я использую Scala коллекции indexWhere
и splitAt
вернуться:
list.splitAt(list.indexWhere(x => x == 5))
(Seq(1,2,3,4), Seq(5,5,4,1,2,5))
Я не Конечно, есть более лучшие способы добиться того же самого лучшего метода коллекции Scala, которого я не понимал?
Я не пытаюсь быть забавным, но вы пробовали прочитать документацию? Первое, что я делаю, когда думаю, что может быть стандартный метод для чего-то, - это сканировать список методов (в этом случае) Seq, и это быстро привело бы вас к 'span' и' takeWhile' ('takeWhile' ' в данном случае это особенно остроумно). См. Http://www.scala-lang.org/api/current/index.html#[email protected](p:A=>Boolean):Repr –