أن العملية هي رمز لأداء عملية أو تقييم شرط.
المنطقيات
تُرجع العمليات المنطقية قيمًا اعتمادًا على القيم البوليانية للمعطيات المعطاة. إذا لم تكن قيمة معينة false أو nil، فإن العملية تُقيمها كـ true. على عكس العديد من اللغات الأخرى، تعتبر Luau كلاً من الصفر والسلسلة الفارغة كـ true. تلخص الجدول التالي كيف تتصرف العمليات المنطقية في الشروط.
| العملية | الوصف |
|---|---|
| and | تُقيم كـ true فقط إذا كانت كلا الشرطين صحيحتين |
| or | تُقيم كـ true إذا كان أحد الشرطين صحيحًا |
| not | تُقيم كعكس الشرط |
و
ترجع العملية الثنائية and أحد المعطيين. إذا كانت قيمة المعطى الأول تُقيم كـ true، فإنها ترجع المعطى الثاني. خلاف ذلك، ترجع المعطى الأول.
print(4 and 5) -- 5print(nil and 12) -- nilprint(false and 12) -- falseprint(false and true) -- falseprint(false and false) -- falseprint(true and false) -- falseprint(true and true) -- true
يمكنك استخدام and لاختبار عدة شروط في الهياكل التحكمية مثل عبارات if و حلقات while. على سبيل المثال، تختبر عبارة if‑then التالية أن كلا الشرطين صحيحين:
local pasta = truelocal tomatoSauce = trueif pasta == true and tomatoSauce == true thenprint("لدينا عشاء سباغيتي")elseprint("هناك شيء مفقود...")end-- المخرجات: لدينا عشاء سباغيتي
أو
ترجع العملية الثنائية or أحد المعطيين. إذا كانت قيمة المعطى الأول تُقيم كـ true، فإنها ترجع المعطى الأول. خلاف ذلك، ترجع المعطى الثاني.
local y = x or 1print(y) -- 1 لأن x غير موجود وبالتالي هو nillocal d = falselocal e = d or 1print(e) -- 1 لأن d هو falseprint(4 or 5) -- 4print(nil or 12) -- 12print(false or 12) -- 12print(false or true) -- trueprint(false or false) -- falseprint(true or false) -- trueprint(true or true) -- true
يمكنك استخدام or لإجراء اختبارات منطقية معقدة في الهياكل التحكمية. على سبيل المثال، تختبر عبارة if‑then التالية ما إذا كان أحد الشرطين صحيحًا أو كان شرط ثالث صحيحًا:
local pasta = falselocal tomatoSauce = truelocal garlicBread = trueif (pasta == true and tomatoSauce == true) or garlicBread == true thenprint("لدينا إما عشاء سباغيتي أو خبز بالثوم")elseprint("هناك شيء مفقود...")end-- المخرجات: لدينا إما عشاء سباغيتي أو خبز بالثوم
ليس
ترجع العملية الأحادية not القيمة البوليانية المعاكسة للمعطى. إذا كان المعطى هو false أو nil، فإنها ترجع true. خلاف ذلك، ترجع false.
print(not true) -- falseprint(not false) -- trueprint(not nil) -- trueprint(not "text") -- falseprint(not 0) -- false
يمكنك استخدام العملية not لتفعيل شرط أو حلقة إذا كانت متغيرًا false أو nil.
local nilVariable -- تم إعلان المتغير ولكن ليس له قيمة، لذا فهو nillocal falseVariable = false -- تم إعلان المتغير بقيمة falseif not nilVariable thenprint(nilVariable) -- المخرجات "nil" لأن nil ليس trueendif not falseVariable thenprint(falseVariable) -- المخرجات "false" لأن false ليس trueend
يمكنك أيضًا استخدام العملية not لاختبار عكس عبارة متعددة الشروط بالكامل. في عينة الكود التالية، تختبر العبارة الشرطية if‑then أنه ليس صحيحًا أن ثلاثة أكبر من أربعة ولا أنه صحيح أن خمسة أكبر من أربعة.
local three = 3local four = 4local five = 5if not (three > four or five < four) thenprint("ثلاثة أقل من 4 وخمسة أكبر من 4.")end-- المخرجات: ثلاثة أقل من 4 وخمسة أكبر من 4.
العلاقات
ترتبط العمليات العلاقية بمقارنة معامليّن وترجع boolean: true أو false.
| العملية | الوصف | مثال | الطريقة المرتبطة |
|---|---|---|---|
| == | تساوي | 3 == 5 → false | __eq |
| ~= | لا يساوي | 3 ~= 5 → true | |
| > | أكبر من | 3 > 5 → false | |
| < | أقل من | 3 < 5 → true | __lt |
| >= | أكبر من أو يساوي | 3 >= 5 → false | |
| <= | أقل من أو يساوي | 3 <= 5 → true | __le |
حسابي
تدعم Luau العمليات الثنائية المعتادة إلى جانب الأس، والمودولوس، والسلب الأحادي.
| العملية | الوصف | مثال | الطريقة المرتبطة |
|---|---|---|---|
| + | جمع | 1 + 1 = 2 | __add |
| - | طرح | 1 - 1 = 0 | __sub |
| * | ضرب | 5 * 5 = 25 | __mul |
| / | قسمة | 10 / 5 = 2 | __div |
| // | قسمة بالأرض | 10 // 4 = 2 | __idiv |
| ^ | أس | 2 ^ 4 = 16 | __pow |
| % | مودولوس | 13 % 7 = 6 | __mod |
| - | سلب أحادي | -2 = 0 - 2 | __unm |
إسناد مركب
يمكنك استخدام عمليات الإسناد المركب لتعيين متغير ليكون مساويًا لنتيجة عملية حيث أن المعامل الأول هو القيمة الحالية للمتغير.
تحدث العملية في الإسناد المركب مرة واحدة. على سبيل المثال، إذا كانت عبارة تنتج فهرسًا عشوائيًا في جدول، فإن Luau تستخدم نفس الفهرس للعملية والإسناد.
في الأمثلة التالية، نفترض local x = 3.
| العملية | العملية | مثال | القيمة الجديدة لـ x |
|---|---|---|---|
| += | جمع | x += 2 | 5 |
| -= | طرح | x -= 2 | 1 |
| *= | ضرب | x *= 2 | 6 |
| /= | قسمة | x /= 2 | 1.5 |
| //= | قسمة بالأرض | x //= 2 | 1 |
| %= | مودولوس | x %= 2 | 1 |
| ^= | أس | x ^= 2 | 9 |
| ..= | دمج | x ..= " World!" | "3 World!" |
متنوعات
تشمل العمليات المتنوعة الدمج والطول.
| العملية | الوصف | مثال | الطريقة المرتبطة |
|---|---|---|---|
| .. | دمج سلسلتين | print("مرحبا " .. "عالم!") | __concat |
| # | طول الجدول | إذا كان tableVar = {1, 2, 3}، فإن #tableVar == 3. | __len |