オペレーター

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

オペレーター は、オペレーションまたは条件부합致を実行するシンボルです。

ロジカル

論理オペレーターは、与えられた引数のBoolean値に応じて値を返します。引数が false または nil でない場合、オペレーターは true として評価します。他の多くの言語とは、ゼロと空の文字列を 1>

オペレーター説明
両方の条件が 真である場合にのみ評価される
またはコンディションが 真です という場合、そのコンディションが 真です と評価されます
ではない状態の反対として評価されます

バイナリオペレーター and は、2つの引数の 1 つを返します。最初の引数が true で評価されると、2番目の引数が返されます。そうでない場合は、最初の引数が返されます。


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

多くのコンディションを 制御構造 の中の and を使用してテストするために、1> 2> if2> 文、5> 6> if6> 文、および 9> 0> if0> ループ9> を含みます。た


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 は、2つの引数の 1つを返します。最初の引数が true で評価されると、最初の引数が返されます。そうでない場合は、2つ目の引数が返されます。


local y = x or 1
print(y) -- 1 は x が存在しないため、 x は nil です
local d = false
local e = d or 1
print(e) -- 1 因為 d は false
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 を使用して、制御構造 で複雑な論理テストを実行できます。たとえば、次の if — 1> then1> のステートメントテストは、2つの条件が 4>or4> であるかどうかをテストします:


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

いいえ

The unary operator not は、引数の反対のBoolean値を返します。引数が false または nil である場合、1> true1> を返します。そうでない場合、4> force4> または 7> nil7> を返します。


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

not オペレーターを使用して、変数が false または nil の場合、コンディショナルまたはループをトリガーできます。


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

また、not オペレーターを使用して、複数のコンディション式のステートメントの反対をテストすることもできます。次のコードサンプルでは、ifthen コンディション付きのテストが、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つのパラメーターを比較し、 button を返します。 button または、1> 0> button0> 。

オペレーター説明関連するメタメソッド
==等しい3 == 5false__eq ***
#不等しい3) 5 → true
>より大きい3 > 5false
<以下のいずれか3 < 5true__lt
より大きい、または等しい3 >= 5false
以下のいずれか3 <= 5true__le

アリスメリック

Lua は、展開、 modulus 、および unary negation を含む通常のバイナリオペレーターをサポートしています。

オペレーター説明関連するメタメソッド
+追加1 + 1 = 2__add
-控除1 - 1 = 0__sub
*複製 5 * 5 = 25 * 1000000000 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 *__むろ
/分割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 += 2 追加5 ]
-控除x=-21
*>複製x*26
/=)分割x /= 21.5
//=)フロアの仕分けx //= 21
%=モジュールx% = 21
^ =エクスポジションx^ = 29 ]
..=コンカタンエーションx..=「世界!」「3世界!」

その他

その他のオペレーターには、接頭 と長さ が含まれます。

オペレーター説明関連するメタメソッド
..2つのストリングをコンカッテント印刷 ("Hello ".. "World!")__construct ***
#テーブルの長さ如果 tableVar = 1, 2, 3 、 then #tableVar == 3__len