Luaの算術演算子には四則演算子と ^(累乗)、%(剰余)がある。
+ | 加算 |
- | 減算 |
* | 積算 |
/ | 除算 |
^ | 累乗 |
% | 剰余 |
Luaの関係演算子には以下のようなものがある。
C言語とは違い「等しくない」の演算子が != ではなく ~= であることに注意。
< | 小さい |
> | 大きい |
<= | 小さいか等しい |
>= | 大きいか等しい |
== | 等しい |
~= | 等しくない |
Luaには以下の論理演算子がある。
C言語のような「&」「|」「!」のような記号での表記はできないので注意。
and | かつ |
or | または |
not | でない |
Luaには文字列を連結するための演算子が用意されている。
.. | 文字列連結 |
以下のようにすることで、変数strには "hogehoge" が代入される。
str = "hoge" .. "hoge"
長さ演算子はテーブルの長さを返す演算子である。
# | 長さを返す |
t = {1, 2, 3} print(#t)
上記の例では、長さ演算子は3を返す。
注意しなければいけないのは配列の途中にnilが存在する場合、そのnilを配列の終端とみなし実際より小さい値が返ってくる可能性がある。
簡単な例で試してみたところ
t = {1, nil, 3} print(#t)
では、正しい長さを返し
t = {} t[1] = 1 t[2] = nil t[3] = 3 print(#t)
では、nilを終端とみなした間違った値が返ってきた。
演算子の優先順位は低いほうから
or and < > <= >= ~= == .. + - * / % not # 単項- ^
の順になる。この優先順位はかっこを使うことにより変更可能である。
結合規則は連結と累乗のみ右からであり、他の二項演算子はすべて左からである。