Programming Taskbook 0
Download 1.62 Mb. Pdf ko'rish
|
Abramyan-Pascal2016-1
- Bu sahifa navigatsiya:
- SkipWhile
Глава 4. Запросы 67 тельности в структуру, хранящую свои данные в памяти, — например, в массив). Фильтрация Методы sequence of T Where(pred: (T[, integer]) -> boolean): sequence of T TakeWhile(pred: (T[, integer]) -> boolean): sequence of T SkipWhile(pred: (T[, integer]) -> boolean): sequence of T Take(count: integer): sequence of T * TakeLast(count: integer): sequence of T Skip(count: integer): sequence of T * Slice(from, step: integer[; count: integer]): sequence of T Distinct: sequence of T Запрос Where является наиболее часто используемым запросом филь- трации. Он возвращает последовательность, содержащую только те эле- менты исходной последовательности, которые удовлетворяют предикату pred (порядок элементов не изменяется). Запрос TakeWhile заносит в выход- ную последовательность элементы исходной последовательности, пока предикат pred возвращает значение True; запрос SkipWhile пропускает начальные элементы исходной последовательности, пока предикат воз- вращает значение True, после чего заносит в выходную последовательность все оставшиеся элементы. Обратите внимание на то, что во всех трех за- просах предикат pred может содержать дополнительный параметр — ин- декс анализируемого элемента (индексация начинается с нуля). Запросы Take, TakeLast и Skip, подобно методам TakeWhile и SkipWhile, возвращают начальную или конечную часть исходной последовательно- сти: Take возвращает первые count элементов, TakeLast — последние count элементов, а Skip пропускает первые count элементов и возвращает остав- шиеся. Элементы в полученной последовательности располагаются в том же порядке, что и в исходной. Если параметр count больше размера исход- ной последовательности, то запросы Take и TakeLast возвращают все эле- менты исходной последовательности, а запрос Skip — пустую последова- тельность. Запрос Take мы уже использовали в предыдущей главе при об- суждении бесконечных последовательностей (см. п. 3.5). Запрос Slice возвращает срез исходной последовательности; он по- дробно обсуждался в п. 3.7. Напомним лишь, что параметр step для этого запроса должен быть положительным. Запрос Distinct возвращает последовательность без повторяющихся элементов (в последовательности оставляются только первые вхождения повторяющихся элементов; повторяющиеся элементы не обязаны распола- гаться в исходной последовательности подряд). Например, для исходной последовательности [1,2,1,2,4,2,3,1] запрос Distinct вернет [1,2,4,3]. |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling