コンピューターというのは計算機です。われわれはプログラムを書いてコンピューターに計算をさせるわけですから、数学のように計算規則を表す記号が必要です。これを演算子(operator)と呼びます。
Luaには四則演算や、条件演算などの演算子が用意されています。その殆どはCなど多くのプログラミング言語と同じようなものです。
記号 | 名前 | 内容 |
+ | 加算演算子 | 足し算を表します。 |
- | 減算演算子 | (二項)引き算を表します。 (単項)符号を反転します。0との減算とも解釈できます。 |
* | 乗算演算子 | 掛け算を表します。 |
/ | 除算演算子 | 割り算を表します。 |
% | 剰余演算子 | 割り算の余りを求めます。 |
^ | 冪演算子 | 累乗を表します。 Cなどとは違い、排他的論理和ではない。 |
< | 比較演算子(小なり) | 左辺が右辺より小さい場合はtrueを返します。 |
> | 比較演算子(大なり) | 左辺と右辺より大きい場合はtrueを返します。 |
<= | 比較演算子(小なりイコール) | 左辺が右辺以下の場合はtrueを返します。 |
>= | 比較演算子(大なりイコール) | 左辺が右辺以上の場合はtrueを返します。 |
== | 等価演算子 | 左辺と右辺が等しい(参照型の場合は同じオブジェクトへの参照を持っている場合)はtrueを返します。 左辺と右辺で型が異なる場合は常にfalseを返します。 |
~= | 等価演算子 | 左辺と右辺が等しくない場合はtrueを返します。 左辺と右辺で型が異なる場合は常にtrueを返します。 |
and | 論理積 | 左辺と右辺の論理積を返します。 Cなどとは違い、&は使えません。 |
or | 論理和 | 左辺と右辺の論理和を返します。 Cなどとは違い、|は使えません。 |
not | 論理否定 | (単項)真偽値を反転します。 Cなどとは違い、!は使えません。 |
.. | 文字列結合演算子 | 左側と右側の文字列リテラルをつなぎます。 |
# | 長さ演算子 | (単項)テーブルの長さを返します。 テーブルの長さとは、テーブルの最初の要素からテーブル内に最初に現れるnilまでの要素数です。 |
演算子には優先順位があります。この優先順位は基本的には数学のそれと同じです。
優先順位の高い順に並べると次のようになります。