オペレータ

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

演算子 は、操作または条件評価を実行するシンボルです。

ロジカル

論理演算子は、指定された引数のブール値に応じて値を返します。引数が false または nil でない場合、オペレータはそれを true として評価します。他の多くの言語とは異なり、Luauはゼロと空の文字列の両方を true と考えます。次の表は、論理オペレーターが 条件付き でどのように動作するかを概要しています。

オペレータ説明
and両方の条件が真である場合にのみ true として評価
orどちらかの条件が真である場合は true と評価します
not条件の反対として評価する

そして

バイナリ演算子 and は、2つの引数の 1つを返します。最初の引数が true に評価される場合、それは第二の引数を返します。そうでないと、最初の引数を返します。


print(4 and 5) -- 5
print(nil and 12) -- なし
print(false and 12) -- 偽
print(false and true) -- 偽
print(false and false) -- 偽
print(true and false) -- 偽
print(true and true) -- true

You can use and to test multiple conditions in コントロール構造 such as if 文章while ループ .たとえば、次の ifthen 文は、2つの条件がともに真であることをテストします:


local pasta = true
local tomatoSauce = true
if pasta == true and tomatoSauce == true then
print("We have spaghetti dinner")
else
print("Something is missing...")
end
-- Output: We have spaghetti dinner

or

バイナリ演算子 or は、2つの引数の 1つを返します。最初の引数が true に評価される場合、最初の引数を返します。そうでないと、2番目の引数を返します。


local y = x or 1
print(y) -- 1は、xが存在しないため、それゆえゼロです
local d = false
local e = d or 1
print(e) -- 1は、dが偽であるため
print(4 or 5) -- 4
print(nil or 12) -- 12
print(false or 12) -- 12
print(false or true) -- 真
print(false or false) -- 偽
print(true or false) -- 真
print(true or true) -- true

or を使用して、コントロール構造 で複雑な論理テストを実行できます。たとえば、次の ifthen 文は、2つの条件が真であるか、 または 3つ目の条件が真であるかをテストします:


local pasta = false
local tomatoSauce = true
local garlicBread = true
if (pasta == true and tomatoSauce == true) or garlicBread == true then
print("We have either spaghetti dinner OR garlic bread")
else
print("Something is missing...")
end
-- Output: We have either spaghetti dinner OR garlic bread

ない

単一オペレーター not は、引数の反対のブール値を返します。引数が false または nil である場合、それは true を返します。そうでないと、false を返します。


print(not true) -- 偽
print(not false) -- 真
print(not nil) -- 真
print(not "text") -- 偽
print(not 0) -- false

変数が not または false である場合、条件付きまたはループをトリガーするには、nil オペレータを使用できます。


local nilVariable -- 変数は宣言されましたが値がありませんので、ゼロです
local falseVariable = false -- 変数は false の値で宣言されます
if not nilVariable then
print(nilVariable) -- nil が真ではないので「nil」を出力する
end
if not falseVariable then
print(falseVariable) -- 「偽」を出力します。偽は真ではありません
end

また、not オペレーターを使用して、全体のマルチ条件文の反対をテストできます。次のコードサンプルでは、3 が 4 より大きいことも、5 が 4 より大きいこともない条件付きテストの if - then が、以下のコードサンプルでは、3 が 4 より大きいことも、5 が 4 より大きいこともありません。


local three = 3
local four = 4
local five = 5
if not (three > four or five < four) then
print("Three is less than 4 and five is greater than 4.")
end
-- Output: Three is less than 4 and five is greater than 4.

関係性

関係オペレータは 2つのパラメータを比較し、boolean : true または false を返します。

オペレータ説明関連するメタメソッド
==等しい to3 == 5false__eq
~=同じではない3 ~= 5true
>大き于3 > 5false
<未満3 < 5true__lt
>=大き于または等しい3 >= 5false
<=小さ于または等しい3 <= 5true__le

算術

Luau は、 exponentiation、modulus、および unary negation とともに通常のバイナリオペレータをサポートします。

オペレータ説明関連するメタメソッド
+追加1 + 1 = 2__add
-減算1 - 1 = 0__sub
*乗算5 * 5 = 25__mul
/分割10 / 5 = 2__div
//フロア分割

10 // 4 = 2 -10 // 4 = -3

__idiv
^経験乗数2 ^ 4 = 16__pow
%モジュール13 % 7 = 6__mod
-単一の否定-2 = 0 - 2__unm

コンパウンド割り当て

コンパウンド割り当てオペレータを使用して、最初のパラメータが変数の現在の値である操作の結果と同じ変数を設定できます。

複合割り当ての操作は 1回発生します。たとえば、式がテーブルでランダムなインデックスを生成する場合、Luauは操作と割り当ての両方に同じインデックスを使用します。

次の例では、local x = 3 を想定します。

オペレータ操作新しい値の x
+=追加x += 25
-=減算x -= 21
*=乗算x *= 26
/=分割x /= 21.5
//=フロア分割x //= 21
%=モジュールx %= 21
^=経験乗数x ^= 29
..=結合x ..= " World!" "3 World!"

その他

その他のオペレーターには、 結合長さ が含まれます。

オペレータ説明関連するメタメソッド
..2つのストリングを結合するprint("Hello " .. "World!")__concat
#タブの長さIf tableVar = {1, 2, 3} 、 then #tableVar == 3__len