演算子

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

演算子は、操作や条件評価を実行するための記号です。

論理

論理演算子は、与えられた引数のブール値に応じて値を返します。引数がfalseまたはnilでない場合、演算子はそれをtrueとして評価します。他の多くの言語とは異なり、Luauはゼロと空の文字列の両方をtrueと見なします。以下の表は、論理演算子が条件文でどのように動作するかをまとめたものです。

演算子説明
and両方の条件が真の場合にのみtrueとして評価される
orいずれかの条件が真であればtrueとして評価される
not条件の逆として評価される

and

二項演算子andは、二つの引数のいずれかを返します。最初の引数がtrueとして評価される場合、第二の引数を返します。そうでない場合は最初の引数を返します。


print(4 and 5) -- 5
print(nil and 12) -- nil
print(false and 12) -- false
print(false and true) -- false
print(false and false) -- false
print(true and false) -- false
print(true and true) -- true

andを使用して、ifステートメントwhileループなどの制御構造で複数の条件をテストできます。例えば、次のifthen文では、二つの条件がどちらも真であるかをテストします。


local pasta = true
local tomatoSauce = true
if pasta == true and tomatoSauce == true then
print("スパゲッティの夕食があります")
else
print("何かが足りません...")
end
-- 出力: スパゲッティの夕食があります

or

二項演算子orは、二つの引数のいずれかを返します。最初の引数がtrueとして評価される場合、最初の引数を返します。そうでない場合は第二の引数を返します。


local y = x or 1
print(y) -- 1、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) -- true
print(false or false) -- false
print(true or false) -- true
print(true or true) -- true

orを使用して、制御構造内で複雑な論理テストを実行できます。例えば、次のifthen文では、二つの条件が真であるかまたは三つ目の条件が真であるかをテストします。


local pasta = false
local tomatoSauce = true
local garlicBread = true
if (pasta == true and tomatoSauce == true) or garlicBread == true then
print("スパゲッティの夕食またはガーリックブレッドがあります")
else
print("何かが足りません...")
end
-- 出力: スパゲッティの夕食またはガーリックブレッドがあります

not

単項演算子notは、引数のブール値の逆を返します。引数がfalseまたはnilである場合、trueを返します。そうでない場合はfalseを返します。


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

not演算子を使用して、変数がfalseまたはnilの場合に条件やループをトリガーすることができます。


local nilVariable -- 変数は宣言されていますが値がなく、したがってnilです
local falseVariable = false -- 変数はfalseの値で宣言されています
if not nilVariable then
print(nilVariable) -- nilは真ではないため、「nil」を出力します
end
if not falseVariable then
print(falseVariable) -- falseは真ではないため、「false」を出力します
end

さらに、not演算子を使用して、全体の複数条件文の逆をテストすることもできます。次のコードサンプルでは、ifthen条件が、三が四より大きくないこと、または五が四より大きくないことが真でないことをテストします。


local three = 3
local four = 4
local five = 5
if not (three > four or five < four) then
print("三は4より小さく、五は4より大きい。")
end
-- 出力: 三は4より小さく、五は4より大きい。

関係

関係演算子は、二つのパラメータを比較し、boolean: trueまたはfalseを返します。

演算子説明関連メタメソッド
==等しい3 == 5false__eq
~=等しくない3 ~= 5true
>より大きい3 > 5false
<より小さい3 < 5true__lt
>=以上3 >= 5false
<=以下3 <= 5true__le

算術

Luauは、通常の二項演算子に加えて、累乗、剰余、単項否定をサポートしています。

演算子説明関連メタメソッド
+加算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

複合代入

複合代入演算子を使用して、変数をその変数の現在の値を初めとする操作の結果に等しく設定できます。

複合代入内の操作は一度だけ行われます。例えば、ある式がテーブル内のランダムなインデックスを生成する場合、Luauは操作と代入の両方で同じインデックスを使用します。

次の例では、local x = 3とします。

演算子操作xの新しい値
+=加算x += 25
-=減算x -= 21
*=乗算x *= 26
/=除算x /= 21.5
//=整数除算x //= 21
%=剰余x %= 21
^=累乗x ^= 29
..=連結x ..= " World!" "3 World!"

その他

その他の演算子には、連結長さが含まれます。

演算子説明関連メタメソッド
..二つの文字列を連結print("こんにちは " .. "世界!")__concat
#テーブルの長さもし tableVar = {1, 2, 3} なら、#tableVar == 3__len
©2026 Roblox Corporation。Roblox(ロブロックス)、RobloxロゴおよびPowering Imaginationは、米国並びにその他の国における登録商標および非登録商標です。