Операция явного приведения типов
Операция явного приведения типов
Операция явного приведения типов имеет вид
ИмяТипа(выражение)
и позволяет преобразовать выражение к типу ИмяТипа. Тип выражения и тип с именем ИмяТипа должны оба принадлежать либо к порядковому типу, либо к типу указателя, либо один тип должен быть наследником другого, либо тип выражения должен поддерживать интерфейс с именем ИмяТипа. В случае указателей запрещено преобразовывать типизированный указатель к типу указателя на другой тип.
Пример.
type pinteger = ^integer; Season = (Winter,Spring,Summer,Autumn); var i: integer; b: byte; p: pointer := @i; s: Season; begin i := integer('z'); b := byte(i); i := pinteger(p); s := Season(1); end. // НеРеализованоКак и для неявного приведения типов, если при приведении типа происходит выход за диапазон значений типа-результата, то при отключенной директиве компилятора #rangecheck off (по умолчанию) значения приводимого типа усекаются до значений типа-результата, при установленной директиве компилятора #rangecheck on генерируется исключение.
Приоритет операций
Приоритет определяет порядок выполнения операций в выражении. Первыми выполняются операции, имеющие высший приоритет. Операции, имеющие одинаковый приоритет, выполняются слева направо.
Таблица приоритетов операций
@, not, ^, +, - (унарные), new
1 (наивысший)
*, /, div, mod, and, shl, shr, as
+, - (бинарные), or, xor
=, <>, <, >, <=, >=, in, is, +=, -=, *=, /=
4 (низший)
Для изменения порядка выполнения операций в выражениях используются скобки.
|