運作商

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

操作器 是執行操作或條件評估的符號。

論理

論理運算器會根據指定的參數的Boolean值返回值。如果參數不是 falsenil ,則運算器會評估它為 true 。與許多其他語言不同,Luau會將零和空白字串都評估為 1> true1> 。下表總結

操作員說明
只有在兩個條件都是 的情況下評價
或者評價為 如果任何條件都是真
不是評估為反過來的狀態

二元運算器 and 返回兩個參數之一。如果第一個參數評估為 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

您可以使用 and 來在 控制結構 中測試多個條件,例如 if 語句 和 2> 4> while4> 循環。 例如,以下 7>if7> — 0>然0> 條件測試�


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 返回兩個參數之一。如果第一個參數評估為 true ,則會返回第一個引數。否則,它將返回第二個引數。


local y = x or 1
print(y) -- 1 因為 x 不存在,因此是零
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> 聲明測試是否兩個條件是否真或是否第三個條件是否真:


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 返回參引數的反向Boolean值。如果參數是 falsenil ,則會返回 1> true1> 。否則,它會返回 4> false4> 。


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

您可以使用 not 操作器來啟動條件或循環,如果變數是 falsenil


local nilVariable -- 變數是宣告,但沒有值,所以它是零
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("Three is less than 4 and five is greater than 4.")
end
-- Output: Three is less than 4 and five is greater than 4.

關係

關係式操作讓您可以比較兩個參數,並且返回 button 或 number 。

操作員說明範例關聯的 metameth 方法
==等於3 == 5關閉__eq
#不等3 5 →
>大於3 > 5不要求
<少於3 < 5true__lt
大於或等於3 >= 5不要求
少於或等於3 <= 5__le

術語

Lua 支援使用率的常見二元運算器、乘數和單獨的否定。

操作員說明範例關聯的 metameth 方法
+添加1 + 1 = 2__add
-:減法1 - 1 = 0__sub
*複製5 * 5 = 25 個__mul
/分裂10 / 5 = 2 * 5__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 += 2 倍5
)-減法x=-21 個
*>複製x*26
/=分裂x /= 21.5.1 版本
//=:地板分裂x //= 21 個
%) =模組x %= 21 個
^=膵解x^ = 29
..=concatenationx ..= "世界!"「3 世界!」

其他

其他運算包括 組合 和 長度。

操作員說明範例關聯的 metameth 方法
..連接兩個字串列印 ("Hello".. "World")__concat:
#桌子長度如果 tableVar = 1, 2, 3 ,則 #tableVar == 3__len