Lua-operators
Lua-オペレーター
演算子は、特定の数学的または論理的な操作を実行するようにインタープリターに指示する記号です。 Lua言語は組み込み演算子が豊富であり、次のタイプの演算子を提供します-
- 算術演算子
- 関係演算子
- 論理演算子
- その他の演算子
このチュートリアルでは、算術演算子、関係演算子、論理演算子、およびその他のさまざまな演算子を1つずつ説明します。
算術演算子
次の表は、Lua言語でサポートされているすべての算術演算子を示しています。 変数 A が10を保持し、変数 B が20を保持すると仮定します-
link:/lua/lua_arithmetic_operators [例を表示]
| Operator | Description | Example |
|---|---|---|
| + | Adds two operands | A + B will give 30 |
| - | Subtracts second operand from the first | A - B will give -10 |
| * | Multiply both operands | A* B will give 200 |
| / | Divide numerator by de-numerator | B/A will give 2 |
| % | Modulus Operator and remainder of after an integer division | B % A will give 0 |
| ^ | Exponent Operator takes the exponents | A^2 will give 100 |
| - | Unary - operator acts as negation | -A will give -10 |
関係演算子
次の表は、Lua言語でサポートされているすべての関係演算子を示しています。 変数 A が10を保持し、変数 B が20を保持すると仮定します-
リンク:/lua/lua_relational_operators [例を表示]
| Operator | Description | Example |
|---|---|---|
| == | Checks if the value of two operands are equal or not, if yes then condition becomes true. | (A == B) is not true. |
| ~= | Checks if the value of two operands are equal or not, if values are not equal then condition becomes true. | (A ~= B) is true. |
| > | Checks if the value of left operand is greater than the value of right operand, if yes then condition becomes true. | (A > B) is not true. |
| < | Checks if the value of left operand is less than the value of right operand, if yes then condition becomes true. | (A < B) is true. |
| >= | Checks if the value of left operand is greater than or equal to the value of right operand, if yes then condition becomes true. | (A >= B) is not true. |
| ⇐ | Checks if the value of left operand is less than or equal to the value of right operand, if yes then condition becomes true. | (A ⇐ B) is true. |
論理演算子
次の表は、Lua言語でサポートされているすべての論理演算子を示しています。 変数 A がtrueを保持し、変数 B がfalseを保持すると仮定します-
link:/lua/lua_logical_operators [例を表示]
| Operator | Description | Example |
|---|---|---|
| and | Called Logical AND operator. If both the operands are non zero then condition becomes true. | (A and B) is false. |
| or | Called Logical OR Operator. If any of the two operands is non zero then condition becomes true. | (A or B) is true. |
| not | Called Logical NOT Operator. Use to reverses the logical state of its operand. If a condition is true then Logical NOT operator will make false. | !(A and B) is true. |
その他の演算子
Lua言語でサポートされるその他の演算子には、*連結*および*長さ*が含まれます。
リンク:/lua/lua_miscellaneous_operator [例を表示]
| Operator | Description | Example |
|---|---|---|
| .. | Concatenates two strings. | a..b where a is "Hello " and b is "World", will return "Hello World". |
| # | An unary operator that return the length of the a string or a table. | #"Hello" will return 5 |
Luaでの演算子の優先順位
演算子の優先順位は、式内の用語のグループ化を決定します。 これは、式の評価方法に影響します。 特定の演算子は、他の演算子よりも優先順位が高くなっています。たとえば、乗算演算子は加算演算子よりも優先順位が高い-
たとえば、x = 7 + 3 * 2;ここで、演算子*の優先順位は&plus;よりも高いため、xには20ではなく13が割り当てられます。したがって、最初に3 * 2で乗算され、7に加算されます。
ここでは、優先順位が最も高い演算子が表の上部に表示され、優先順位が最も低い演算子が下部に表示されます。 式内では、優先順位の高い演算子が最初に評価されます。
リンク:/lua/operators_precedence_in_Lua [例を表示]
| Category | Operator | Associativity |
|---|---|---|
| Unary | not # - | Right to left |
| Concatenation | .. | Right to left |
| Multiplicative | */% | Left to right |
| Additive | + - | Left to right |
| Relational | < > ⇐ >= == ~= | Left to right |
| Equality | == ~= | Left to right |
| Logical AND | and | Left to right |
| Logical OR | or | Left to right |