لُوا لغة برمجة ديناميكية، وهذا يعني أن المتغيرات ليس لها أنواع؛ القيم فقط بها أنواع. لا توجد تعريفات للنوع في اللغة. كل القيم تحمل الأنواع الخاصة بها.

للإطلاع أكثر على تعريف لغات البرمجة الديناميكية:

http://en.wikipedia.org/wiki/Dynamic_programming_language

كافة القيم في لوا هي قيم من الدرجة الأولى أو First-class Values. وهذا يعني أن جميع القيم يمكن تخزينها في المتغيرات، تمريرها كقيم للعمليات، و إعادتها كنتائج.

الأنواع الأساسية التي يجب أن تهتم بها هي كالتالي:

  • nil — فارغ هذا النوع من القيم والذي يتمثل بـ nil يختلف عن باقي القيم، ويمثل عدم وجود قيمة مفيدة أو حالة فراغ أو عدم للقيمة.

  • boolean — منطقية يمثل أنواع القيم التي تكون إما صحيح true أو خطأ false. كل من القيم المتمثلة في nil أو false ستنتج حالة خاطئة؛ بينما أي قيمة أخرى ستنتج حالة صحيحة.

  • number — رقم يمثل الأرقام الصحيحة (double-precision floating-point) http://en.wikipedia.org/wiki/Double-precision_floating-point_format.

  • string — سلسلة يمثل مصفوفة من الحروف. لُوا تدعم 8 بت: السلسلة يمكن أن تحتوي على أي حرف 8 بت، بما في ذلك جزءا لا يتجزأ من الأصفار.

  • function — عملية شرحها بالتفصيل في موضوع مستقل.

  • table — جدول آلية هيكلة البيانات الوحيدة في لُوا. شرحها بالتفصيل في موضوع مستقل.

توفر لُوا التحويل التلقائي بين قيمة سلسلة و عدد أثناء وقت التشغيل. أي عملية حسابية تطبق على سلسلة فإن لوا ستحاول تحويل هذه السلسلة إلى عدد. على العكس، كلما تم استخدام عدد في موقع حيث من المتوقع أن يكون سلسلة، يتم تحويل العدد إلى سلسلة، في شكل معقول. من أجل تحكم كامل على كيفية تحويل الأرقام إلى سلاسل أو العكس، استخدم الدالة string.format من مكتبة سلسلة.

السلسلة القادمة من المواضيع ستتحدث عن العمليات و الجداول بالتفصيل.

وشكراً على المتابعة حتى النهاية :)