Справочное руководство для Free Pascal, Версия 3.0.0. Версия документа 3.0 [Михаэль Ван Кеннейт] (pdf) читать постранично, страница - 55
Книга в формате pdf! Изображения и текст могут не отображаться!
[Настройки текста] [Cбросить фильтры]
В операторе case могут быть составные операторы (то есть блоки be
gin..end).
201
Глава 13 Операторы
Примечание:
В отличие от Turbo Pascal, дублирование case индекса не допускаются в
Free Pascal, поэтому следующий код вызовет ошибку компиляции:
Var i : integer;
...
Case i of
3 : DoSomething;
1..5 : DoSomethingElse;
end;
Компилятор выдаст ошибку Dup licate case label (Пр одублир ован case
индекс) при компиляции этого, потому что 3 также появляется (неявно) в
диапазоне 1..5. Это дублирует синтаксис Delphi.
Free Pascal позволяет использовать строки в качестве индексов case, и в этом
случае case переменная (или выр ажение) также должна быть строкой. При
использовании переменной строкового типа в case и различные индексы
сравниваются с учётом регистра.
Case lowercase(OS) of
’windows’,
’dos’
: WriteLn ('Платформа Microsoft');
’macos’,
’darwin’ : Writeln('Платформа Apple');
’linux’,
’freebsd’,
’netbsd’ : Writeln('Общественная платформа');
else
WriteLn ('Другая платформа');
end;
Case со строками эквивалентна последовательности операторов if then
else, при этом никаких оптимизаций не выполняются.
Тем не менее, диапазоны допустимы, и эквивалентны
if (value >= beginrange) and (value TTest1),
// следующее преобразование неявное (TTest1 => TTest3)
t3 := TTest1(t2);
// Неявное
t3 := t1;
// Явное
t3 := TTest3(t1);
end.
будет выводить:
Неявное TTest1 => TTest2
Неявное TTest1 => TTest2
Явное TTest2 => TTest1
Явное TTest2 => TTest1
Неявное TTest1 => TTest3
Неявное TTest1 => TTest3
Явное TTest1 => TTest3
15.4 Арифметические операторы
Арифметические операторы по сути бинарный оператор. Возможные операции:
умножение
чтобы умножить два аргумента нестандартного типа,
умножения (*) должен быть перегружен.
оператор
деление
для того, чтобы разделить два аргумента нестандартного типа, оператор
деления (/) должен быть перегружен.
сложение
чтобы сложить два аргумента нестандартного типа, оператор сложения
(+) должен быть перегружен.
вычитание
чтобы вычесть аргумент нестандартного типа из др. аргумента, оператор
вычитания (-) должны быть перегружен.
255
Глава 15 Перегрузка операторов
возведение в степень (exp onentiation)
Для возведения аргумента в степень другого аргумента нестандартного
типа, оператор возведения в степень (**) должен быть перегружен.
унарный минус
используется, чтобы взять отрицательное значение
следующий за ним (это опер атор одного ар гумента) .
аргумента
симметричная разность
Для вычисления симметрической разности 2 структур, оператор (>=) Чтобы определить, что один аргумент больше или равен другому.
меньше или равно
(
Последние комментарии
16 часов 5 минут назад
22 часов 27 минут назад
22 часов 35 минут назад
23 часов 3 минут назад
23 часов 7 минут назад
23 часов 8 минут назад