ผู้ปฏิบัติการ

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

ตัวประกอบ **** เป็นสัญลักษณ์สำหรับการดำเนินการหรือการประเมินเงื่อนไข

ตรรกะ

ตัวประกอบทางเหตุผลส่งค่ากลับขึ้นอยู่กับค่า boolean ของอาร์กิวเมนต์ที่กำหนดหากอาร์กิวเมนต์ไม่ใช่ false หรือ nil แล้วตัวประกอบจะประเมินมันเป็น trueไม่เหมือนภาษาอื่น ๆ หลายภาษา Luau พิจารณาทั้งศูนย์และสตริงว่างเปล่าเป็น trueตารางต่อไปนี้สรุปวิธีที่ตัวเลือกเชิงตรรกะทำงานในเงื่อนไข

ผู้ปฏิบัติการคําอธิบาย
andประเมินเป็น true เฉพาะถ้าทั้งสองเงื่อนไขเป็นจริง
orประเมินเป็น true หากเงื่อนไขใดเป็นจริง
notประเมินเป็นสิ่งที่ตรงข้ามกับเงื่อนไข

และ

ตัวประกอบไบนารี 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 คําสั่ง และ while ลูปตัวอย่างเช่น คำสั่งทดสอบต่อไปนี้ ifthen ที่สองเงื่อนไขเป็นจริงทั้งสอง:


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 ส่งคืนหนึ่งในสองอาร์กิวเมนต์หากอาร์กิวเมนต์แรกประเมินเป็น true แล้วจะคืนอาร์กิวเมนต์แรกมิฉะนั้นจะส่งคืนอาร์กิวเมนต์ที่สอง


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 ทดสอบว่าสองเงื่อนไขเป็นจริงหรือไม่ หรือ เงื่อนไขที่สามเป็นจริง


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 ที่ตรงกันของอาร์กิวเมนต์กลับหากอาร์กิวเมนต์เป็น 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 -- ตัวแปรถูกประกาศด้วยค่าเท็จ
if not nilVariable then
print(nilVariable) -- ออก "ไม่มี" เพราะ nil ไม่เป็นจริง
end
if not falseVariable then
print(falseVariable) -- ออก "ไม่ถูกต้อง" เพราะไม่ถูกต้องไม่ใช่จริง
end

คุณยังสามารถใช้ตัวประกอบ not เพื่อทดสอบสิ่งที่ตรงกันข้ามกับคำสั่งหลายเงื่อนไขทั้งหมดในตัวอย่างโค้ดต่อไปนี้ การทดสอบเงื่อนไข ‑ ที่ไม่ใช่จริงที่สามมากกว่าสี่หรือไม่ใช่จริงที่ห้ามากกว่าสี่


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.

เชิงสัมพันธ์

ผู้ประกอบเชิงเส้นสัมพันธ์เปรียบเทียบสองพารามิเตอร์และส่งคืน : หรือ หรือไม่

ผู้ปฏิบัติการคําอธิบายตัวอย่างวิธีการ metamethod ที่เกี่ยวข้อง
==เท่ากับ3 == 5false__eq
~=ไม่เท่ากับ3 ~= 5true
>มากกว่า3 > 5false
<น้อยกว่า3 < 5true__lt
>=มากกว่าหรือเท่ากับ3 >= 5false
<=น้อยกว่าหรือเท่ากับ3 <= 5true__le

อาริทเมติก

Luau สนับสนุนตัวประกอบไบนารีทั่วไปพร้อมกับการคูณอัตราเร่ง โมดูล และการปฏิเสธเชิงเดียว

ผู้ปฏิบัติการคําอธิบายตัวอย่างวิธีการ metamethod ที่เกี่ยวข้อง
+เพิ่ม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!"

อื่นๆ

ตัวประกอบอื่นๆ รวมถึง การรวมกัน และ ความยาว

ผู้ปฏิบัติการคําอธิบายตัวอย่างวิธีการ metamethod ที่เกี่ยวข้อง
..รวมสองสตริงprint("Hello " .. "World!")__concat
#ความยาวของตารางหาก tableVar = {1, 2, 3} , แล้ว #tableVar == 3 .__len