Programming Taskbook 0
Download 1.62 Mb. Pdf ko'rish
|
Abramyan-Pascal2016-1
Глава 3. Массивы и последовательности 33 3.3. Функции генерации массивов PascalABC.NET обладает богатым набором функций, позволяющих формировать массивы с нужным содержимым. Благодаря этим функциям во многих случаях при определении массива можно обойтись не только без указания его типа, но и без вызова конструктора. Имеются две основные функции генерации массивов: ArrFill и ArrGen, причем вторая функция имеет несколько перегруженных вариантов, отли- чающихся своими параметрами. Во всех функциях генерации массива пер- вым параметром является его размер count типа integer. Вторым параметром функции ArrFill является значение, которое присваивается всем элементам созданного массива. Этот параметр может иметь произвольный тип; имен- но по типу второго параметра определяется тип элементов массива, т. е. тип возвращаемого значения функции ArrFill. Подобное «гибкое» поведение функции ArrFill возможно благодаря то- му, что эта функция (как и практически все подпрограммы, связанные с обработкой массивов, и очень многие другие подпрограммы языка PascalABC.NET) является обобщенной функцией. Обобщенные подпро- граммы позволяют использовать в качестве одного или нескольких типов имена-«заменители» (обычно T или T1, T2, и т. д.), означающие любой воз- можный тип. Имена-заменители должны указываться в заголовке подпро- граммы в угловых скобках сразу после ее имени и в дальнейшем могут применяться, как и «обычные» имена типов, при описании параметров, возвращаемого значения функции и локальных переменных. Например, за- головок функции ArrFill выглядит следующим образом: function ArrFill С помощью этой функции можно очень легко определить массив, со- стоящий, например, из 10 целых чисел, равных 1: var a := ArrFill(10, 1); Если в качестве второго параметра указать 1.0, то будет создан массив вещественных чисел того же размера и с тем же значением. Гораздо больше возможностей по созданию массивов предоставляют различные варианты функции ArrGen. Во всех этих вариантах ключевую роль играют параметры — лямбда-выражения, которые подробно обсуж- дались в п. 1.3. Приведем заголовки для всех вариантов функции ArrGen (здесь и далее в полужирных квадратных скобках будут указываться не- обязательные параметры, для которых предусмотрены значения по умол- чанию; кроме того, для упрощения записи мы не будем в дальнейшем ука- зывать текст function ArrGen(count: integer; f: integer -> T 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