Delphi 的運算符列表
分類 | 運算符 | 操作 | 操作數 | 結果類型 | 範例 |
---|---|---|---|---|---|
算術運算符 | + | 加 | 整數,實數 | 整數,實數 | X + Y |
- | 減 | 整數,實數 | 整數,實數 | Result - 1 | |
* | 乘 | 整數,實數 | 整數,實數 | P * InterestRate | |
/ | 實數除 | 整數,實數 | 實數 | X / 2 | |
div | 整數除 | 整數 | 整數 | Total div UnitSize | |
mod | 取模 | 整數 | 整數 | Y mod 6 | |
+(一元) | 符號等同 | 整數,實數 | 整數,實數 | +7 | |
-(一元) | 符號相反 | 整數,實數 | 整數,實數 | -X | |
布爾運算符 | not | 否定 | 布爾型 | Boolean | not (C in MySet) |
and | 與 | 布爾型 | Boolean | Done and (Total > 0) | |
or | 或 | 布爾型 | Boolean | A or B | |
xor | 異或 | 布爾型 | Boolean | A xor B | |
邏輯(按位)運算符 | not | 按位否定 | 整數 | 整數 | not X |
and | 按位與 | 整數 | 整數 | X and Y | |
or | 按位或 | 整數 | 整數 | X or Y | |
xor | 按位異或 | 整數 | 整數 | X xor Y | |
shl | 按位左移 | 整數 | 整數 | X shl 2 | |
shr | 按位右移 | 整數 | 整數 | Y shr I | |
字符串運算符 | + | 連接 | 字符串、壓縮串、字符 | 字符串 | S + '.' |
指針運算符 | + | 指針加 | 字符指針,整數 | 字符指針 | P + I |
- | 指針減 | 字符指針,整數 | 字符指針,整數 | P - Q | |
^ | 指針解除參照 | 指針 | 指針的基類型 | P^ | |
= | 相等 | 指針 | Boolean | P = Q | |
<> | 不等 | 指針 | Boolean | P <> Q | |
集合運算符 | + | 並集 | 集合 | 集合 | Set1 + Set2 |
- | 差集 | 集合 | 集合 | S – T | |
* | 交集 | 集合 | 集合 | S * T | |
<= | 子集 | 集合 | Boolean | Q <= MySet | |
>= | 超集 | 集合 | Boolean | S1 >= S2 | |
= | 相等 | 集合 | Boolean | S2 = MySet | |
<> | 不等 | 集合 | Boolean | MySet <> S1 | |
in | 成員 | 序數,集合 | Boolean | A in Set1 | |
關係運算符 | = | 相等 | 簡單類型、類、類引用、接口、串、壓縮串 | Boolean | I = Max |
<> | 不等 | 簡單類型、類、類引用、接口、串、壓縮串 | Boolean | X <> Y | |
< | 小於 | 簡單類型、串、壓縮串、PChar | Boolean | X < Y | |
> | 大於 | 簡單類型、串、壓縮串、PChar | Boolean | Len > 0 | |
<= | 小於或等於 | 簡單類型、串、壓縮串、PChar | Boolean | Cnt <= 1 | |
>= | 大於或等於 | 簡單類型、串、壓縮串、PChar | Boolean | I >= 1 | |
類運算符 | as | 轉換 | 類和類的實例 | ||
is | 判斷 | ||||
= | 關係運算符 = 和 <> 也作用於類 | ||||
<> | |||||
地址(@)運算符 | @X | 如果X是一個變量,那麼@X返回X的地址。 當編譯指示 {$T-} 有效時,@X是Pointer類型; 而在編譯指示 {$T+} 狀態下時,@X是 ^T 類型,這裏的T是X的類型。 | |||
@F | 如果 F 是一個例程(函數或過程),那麼@F返回 F 的入口點,@F的類型總是Pointer。 | ||||
@類中方法 | 當 @ 適用於定義在類中的方法時,方法標識符必需被類的名稱限定。例如: @TMyClass.DoSomething |
Delphi 運算符及優先級
單目運算符 (最高優先級) | |
---|---|
@ | 取變量或函數的地址(返回一個指針) |
not | 邏輯取反或按位取反 |
乘除及按位運算符 | |
* | 相乘或集合交集 |
/ | 浮點相除 |
div | 整數相除 |
mod | 取模 (整數相除的餘數) |
as | 程序運行階段類型轉換 (RTTI運算符) |
and | 邏輯或按位求和 |
shl | 按位左移 |
shr | 按位右移 |
加減運算符 | |
+ | 相加、集合並集、字符串連接或指針增加一個偏移量 |
- | 相減、集合差集或指針減少一個偏移量 |
or | 邏輯或按位或運算 |
xor | 邏輯或按位異或運算 |
關係及比較運算符(最低優先級) | |
= | 判斷是否相等 |
<> | 判斷是否不相等 |
< | 判斷是否小於 |
> | 判斷是否大於 |
<= | 判斷是否小於或等於,或是否是一個集合的子集 |
>= | 判斷是否大於或等於,或是否是一個集合的父集 |
in | 判斷是否是集合成員 |
is | 判斷對象是否類型兼容 (又一個RTTI運算符) |