38
5.3. Переопределение типа данных (Type Cast)
<>
неравенство, операция применяется над операндами любых совместимых типов
за исключением файлового;
<
меньше, операция применяется над операндами совместимых простых типов,
операндами типа STRING и упакованными массивами с базовым типом CHAR;
<=
меньше или равно, операция применяется над операндами совместимых простых
типов, операндами типа STRING и упакованными массивами с базовым типом
CHAR. Операция применяется и над операндами совместимых множественных
типов, но тогда она интерпретируется как включение левого операнда-
множества в правом операнде-множестве;
>
больше, операция применяется над операндами совместимых простых типов,
операндами типа STRING и упакованными массивами с базовым типом CHAR;
>=
больше или равно, операция применяется над операндами совместимых простых
типов, операндами типа STRING и упакованными массивами с базовым типом
CHAR. Операция применяется и над операндами совместимых множественных
типов, но тогда она интерпретируется как включение правого операнда-
множества в левом операнде-множестве;
IN
принадлежность элемента множеству. иевый операнд должен быть
ординального типа, а правый - множественного типа. Операция возвращает
результат TRUE, если левый операнд принадлежит правому, и FALSE - если не
принадлежит.
5.3. Переопределение типа данных (Type Cast)
Переопределение типа данных является расширением ISO Pascal-я. В UniPascal-е
идентификатор каждого типа может быть использован в качестве идентификатора
функции с единственным параметром. Эта функция возвращает в качестве результата
значение заданного ей параметра, но уже принадлежит другому типу, определенному
именем функции. Переопределением типа явным образом требуется изменение типа.
Неявным образом совершается изменение типа при вычислении выражения,
содержащего операнды разных типов.
ExpTypeCast =
TypeIdent '(' Expression ')'.
VarTypeCast =
TypeIdent '(' VariableRef ')'.
Явное переопределение типа применяется в двух случаях:
*
переопределение типа переменной. Временно (только в этом месте и нигде
больше) изменяется множество ее допустимых значений и множество
допустимых операций. Размер переменной и размер нового типа должны
совпадать или переменная должна быть нетипизированным параметром. В
этом случае компилятор не создает дополнительный код, а на этом месте
он считает ее декларированной как переменная переопределяемого типа;
*
переопределение типа значения. Здесь компилятор генерирует код,
который переобразует значение старого типа в значение нового типа.
Переопределение типа переменной или значения описывается единственным
синтаксическим правилом. Компилятор определяет в зависимости от контекста
семантику этого правила и предпринимает необходимые действия.
Примеры:
1) Использование побитовых логических операций над операндами целых типов.
Так как эти операции дефинированы только над данными типа BYTE, WORD и
<<  <  GO  >  >>

Вернуться к началу сайта