Programming Taskbook 0
Download 1.62 Mb. Pdf ko'rish
|
Abramyan-Pascal2016-1
- Bu sahifa navigatsiya:
- Поэлементные операции Методы sequence of T First
- ElementAtOrDefault
Глава 4. Запросы 61 4.1. Поэлементные операции, квантификаторы и агрегирование К простейшим стандартным запросам можно отнести запросы, кото- рые позволяют: • обратиться к отдельным элементам последовательности, • проверить, удовлетворяют ли все или некоторые элементы опреде- ленному условию (запросы-квантификаторы), • найти какую-либо общую (агрегирующую) характеристику элемен- тов последовательности. Здесь и далее при описании групп запросов (и других методов) мы бу- дем указывать их имена, параметры и тип возвращаемого значения, заклю- чая необязательные параметры в квадратные скобки. В первой строке опи- сания группы методов слева будет указываться ее название, а справа — тип структуры, к которой должны применяться описываемые методы. Начнем с первой группы запросов. Обратите внимание на то, что все эти запросы возвращают скалярное значение. Поэлементные операции Методы sequence of T First([pred: T -> boolean]): T Last([pred: T -> boolean]): T Single([pred: T -> boolean]): T ElementAt(index: integer): T FirstOrDefault([pred: T -> boolean]): T LastOrDefault([pred: T -> boolean]): T SingleOrDefault([pred: T -> boolean]): T ElementAtOrDefault(index: integer): T Запрос First возвращает первый элемент последовательности, запрос Last — последний элемент, запрос Single — единственный элемент после- довательности, а запрос ElementAt — элемент с индексом index. При указа- нии дополнительного параметра — предиката pred запросы обрабатывают только те элементы последовательности, которые удовлетворяют указан- ному предикату. Запросы, имеющие суффикс OrDefault, выполняются аналогично запро- сам без суффикса, однако при отсутствии требуемого элемента запросы с суффиксом OrDefault возвращают нулевое значение для типа T (тогда как запросы без OrDefault возбуждают исключение 4 ). Напомним, что нулевым 4 Если в программе возбуждается исключение (говорят также, что в программе возни- кает исключительная ситуация), то при отсутствии в ней специальных средств для пе- рехвата и обработки исключения (так называемых try-блоков) происходит аварийное завершение программы. Использование try-блоков в Паскале кратко описывается, например, в [2, п. 12.5]. 62 значением для числовых типов является число 0 данного типа, для символа — это символ с кодом 0, а для строки — константа nil. Заметим, что запросы Single и SingleOrDefault всегда возбуждают ис- ключение, если количество требуемых элементов больше одного. Они дей- ствуют по-разному, если требуемые элементы отсутствуют: в этом случае запрос Single возбуждает исключение, а запрос SingleOrDefault возвращает нулевое значение. Как уже отмечалось в предыдущей главе (см. п. 3.4), запрос ElementAt, как правило, выполняется медленно, поэтому его не следует использовать для перебора всех элементов последовательности в цикле. Перейдем к запросам-квантификаторам. Download 1.62 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling