В языке Object Pascal, как и в обычном Паскале, имеется две разновидности подпрограмм – процедуры и функции. Их виды, правила описания и использования сохраняются. В Object Pascal имеются следующие отличия в реализации процедур и функций:
1. Функция может возвращать значения практически любых типов (стандартных и пользовательских), за исключением файловых и объектных типов прежней объектной модели.
2. Для возврата результата из функции введена специальная переменная Result, которая представляет собой неявно объявленную локальную переменную, имеющую такой же тип, как и возвращаемое функцией значение.
3. Введено новое языковое средство – конструкторы открытых параметров-массивов, которые позволяют формировать передаваемый в процедуру фактический параметр-массив непосредственно в операторе вызова процедуры. При этом не требуется объявления массива в вызывающей программе и его предварительного заполнения исходными значениями.
4. В качестве открытого массива можно использовать массив с компонентами разного типа. В этом случае соответствующему формальному параметру задается тип array of const, что позволяет передавать в процедуру/функцию произвольное число фактических параметров различных типов с сохранением их исходного типа в рамках процедуры/функции.
Для работы с ними используются следующие стандартные функции: функции High(X) и Low(X) определяют соответственно максимальный и минимальный индексы массива открытого типа X, а функция Slice(X,C) выделяет из массива X первые C компонент (типа Integer) для передачи их в подпрограмму в качестве открытого массива. Конструктор открытого массива аналогичен конструктору множества, только используемые в нем выражения должны иметь тот же тип, что и компоненты открытого массива. Любой конструктор открытого массива помещается в квадратные скобки и представляет собой перечисленные через запятую выражения соответствующего типа, например:
Max([A, 1.15, B+C])
, где Max – имя функции
Опубликовал Kest
December 19 2009 21:10:52 ·
0 Комментариев ·
6020 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.