ما هي Luau؟
جزء من قسم مقدمة إلى Luau في رحلة Lua على Coddy. الدرس 1 من 80.
إن Luau لغة برمجة أنشأتها Roblox، وتبني على Lua التي تعرفها بالفعل بإضافة أنواع ثابتة تدريجية. فكّر فيها على أنها Lua مع طبقة إضافية من الأمان والأدوات. وهي تشغّل ملايين التجارب على Roblox، وقد أصبحت مفتوحة المصدر منذ عام 2021.
الفكرة الأساسية هي أن Luau مجموعة شاملة من Lua 5.1. أي شيفرة Lua 5.1 صالحة هي أيضًا شيفرة Luau صالحة: يمكنك أخذ نص برمجي كتبته في الأقسام السابقة وتشغيله بلغة Luau دون أي تغيير.
ما تضيفه Luau هو تعليقات توضيحية للأنواع. يحدد التعليق التوضيحي نوع البيانات التي ينبغي أن يحتوي عليها متغير ما، كسلسلة نصية أو عدد أو قيمة منطقية أو جدول، حتى يمكن اكتشاف الأخطاء قبل تشغيل الشيفرة:
-- Lua (صالحة أيضًا في Luau)
local playerName = "Rio"
-- Luau مع تعليق توضيحي للنوع
local playerName: string = "Rio"كلمة تدريجية مهمة: فالتعليقات التوضيحية اختيارية. يمكنك تحديد نوع متغير واحد أو دالة واحدة أو ملف كامل؛ وتظل الشيفرة غير المحددة الأنواع بأسلوب Lua تعمل بينما تضيف الأنواع بالوتيرة التي تناسبك.
وفي المقابل، ستحصل على أدوات أفضل في المحرر، وشيفرة أسهل قراءة، وحماية من أنواع الأخطاء التي لا تكشفها Lua العادية إلا أثناء تشغيل البرنامج.
التحدي
سهلحوِّل متغير Lua هذا إلى متغير Luau ذي نوع محدد.
- في السطر
local message = "Hello World"، أضف: stringمباشرةً بعدmessage. - أبقِ السطر
print(message)كما هو.
اضغط على Run Code: سيُظهر الناتج Hello World.
جرّب بنفسك
-- Lua العادية: لم يُحدَّد نوع message بعد
local message = "Hello World"
print(message)
جميع دروس مقدمة إلى Luau
1البدء مع Luau
ما هي Luau؟لماذا نستخدم Luau؟أول كود لك بلغة Luauفحص الأنواع وأنماط الأخطاءملخص: مقدمة إلى Luau4العمل مع الدوال
تحديد أنواع المعاملات والقيم المُعادةتحديد أنواع الدوال المجهولةالدوال التي لا تُعيد قيمةالمعاملات الاختياريةالقيم الافتراضية للمعاملاتالقيم الافتراضية للمنطقيةالدوال ذات المعاملات المتغيرةتعريف أنواع الدوالمراجعة: الدوال ذات الأنواع المحددة2الأنواع الأساسية
الأعداد والسلاسل النصية والقيم المنطقيةالنوع 'any': مخرج عند الضرورةالنوع 'unknown'الأنواع الخالية والاختياريةاستدلال الأنواع عمليًاالتصريحات الصريحة للأنواعمراجعة: تدريب على الأنواع الأساسية5الأسماء المستعارة، الأنواع المشتركة، والأنواع المتقاطعة
الأسماء المستعارة للأنواع الأوليةأنواع الاتحاد (Union Types)التعامل مع أنواع الاتحادالأنواع اللفظية (Literal Types)أنواع التقاطع (Intersection Types)دمج الأسماء المستعارة للأنواعملخص: تجميعات الأنواع المتقدمة3الجداول محددة الأنواع: المصفوفات والخرائط
المصفوفات محددة الأنواعإضافة العناصر وقراءتهاما نوع Map؟تعريف الخرائط والوصول إليهاالتكرار عبر الجداولالجداول ذات البُنى المختلطةقراءة شبكةإنشاء شبكةtable.unpackمراجعة: المصفوفات والخرائط6تحديد أشكال الجداول (Typing Table Shapes)
توضيحات أشكال الجداول المضمنةأسماء مستعارة للأنواع لأشكال الجداولالخصائص الاختياريةأشكال الجداول مقابل الجداول الحرةتوسيع أشكال الجداولإضافة الدوارل إلى أشكال الجداولSelf والدوال المسبوقة بنقطتين (Colon Methods)ملخص: تعريف أشكال الجداول9الأنواع المعممة (Generics): نظرة أولى
المشكلة التي تحلها الأنواع المعممةدالة هوية معممةاستخدام دالة معممةالمصفوفات المعممةأسماء مستعارة للأنواع المعممةملخص: الدوال المعممةتدرّب بنفسك: مترجم Luau عبر الإنترنت