Описание |
Ключевое слово Const используется для начала раздела постоянных определений.
Раздел заканчивается следующим ключевым словом в программе.
В пределах раздела могут быть определены одна или более константы. Они могут быть смесью нормальных или типизированных констант:
1. Нормальные константы
Они дают название Name1 к установленному выражению, Expression1. Выражение должно быть одним из следующих типов:
Integer number
Floating point number
Character
String
Set
Enumerated value
2. Типизированные константы
Они очень странные. Они являются постоянными только в том смысле, что их значение сохраняется во всех частях программы. Все же они могут быть изменены (когда директива компилятора {WriteableConst} установлена на On).
Они используются, например, когда подпрограмма должна содержать значения, которые сохраняются поперек запросов.
Лучше использовать Объектно-ориентированные принципы, чтобы разрешить данным сохраняться поперек доступов.
3. Постоянные параметры подпрограммы
При передачи данных подпрограмме (функция или процедура), вы можете предписать определение параметра как Константу (Const), если значение никогда не модифицируется. Это незначительно улучшает работу, разъясняет операцию подпрограммы, и предотвращает случайные обновления значения.
|
|
Похожие команды |
Function Определяет подпрограмму, которая возвращает значение
Out Идентифицирует стандартный параметр только для вывода
Procedure Определяет подпрограмму, которая не возвращает значение
Type Определяет новую категорию переменной или процесса
Var Начинает раздела определения переменных
| |
|
Пример кода : Иллюстрация различных типов констант |
Const
MAX_LINES = 3;
CRUDE_PI = 22/7;
HELLO = 'Hello World';
LETTERS = ['A'..'Z', 'a'..'z'];
DECISION = True;
var
i : Integer;
begin // Отображение нашего сырого
значения Пи
ShowMessage('Crude Pi = '+FloatToStr(CRUDE_PI));
// Скажем миру
HELLO
ShowMessage(HELLO);
// Отоюражение данных MAX_LINES
for i := 1 to MAX_LINES do
begin // Делаем
некоторую проверку - обратите внимание, что Char(i+64) = 'A'
if DECISION and (Char(i+63) in LETTERS)
then ShowMessage(Char(i+63)+' является буквой')
else ShowMessage(Char(i+63)+' не является буквой');
end;
end;
|
Crude_Pi = 3.14285714285714
Hello World
@ не является буквой
A является буквой
B является буквой
|
|
| Пример кода : Сохранение значение числа через вызовы подпрограммы |
var
i : Integer;
begin
for i := 1 to 8 do
ShowMessage('Number = '+IntToStr(GetNextNumber));
end;
// Получение следующего числа из данной
последовательности
function TForm1.GetNextNumber: Integer;
type // Определение диапазона чисел,
подлежащих возврату этой подпрограммой
TNumbers = 0..5;
Const //
Типизированная константа, действительно, является постоянной переменной: //
Её значение, сохраняется через вызовы к этой подпрограмме.
{$WriteableConst On} nextNumber : TNumbers = 0; //
Начинаем с начала
begin // Возвращаем текущее значение
result := nextNumber;
// Приращение к следующему значению
nextNumber := (nextNumber + 1) MOD 6;
end;
|
Number = 0
Number = 1
Number = 2
Number = 3
Number = 4
Number = 5
Number = 0
Number = 1
|
|