سؤال
هل يمكن لأحد أن يشرح هذا لي؟ لقد اكتشفت ذلك من خلال هذا الدورة التعليمية أن هذا هو المعروف باسم الجدول. قادم من ج/خلفية C ++ ، هل يمكن لأي شخص أن يشرح كيف يعمل هذا (أحاول فهم بعض رمز LUA الحالي)؟
config = {
devices = {
C56 = "/dev/ttyS2",
ELTRA = "/dev/ttyS3",
-- MICORE = "/dev/ttyS4",
HID = "/dev/ttyS1",
KEYCARD = {
-- [6] = { tty="/dev/ttyS1", speed=9600 },
[7] = { tty="/dev/ttyS4", speed=9600 },
},
},
}
هل هو جدول تكوين ، يتكون من جدول الجهاز ولكن بعد ذلك هناك جدول بطاقة المفاتيح؟ ماذا يسمى C56 و Eltra في لوا؟ هل هم حقول؟
المحلول
جدول في لوا هو مجرد خريطة غير معدلة ، مثل كائنات جافا سكريبت أو قواميس بيثون. يربط الجدول قيمة واحدة (مثل "الأجهزة" أو 6) بقيمة أخرى (مثل "/dev/ttys2"). يمكن أن تكون القيمة جدولًا آخر. يتم استخدام الجداول لإنشاء كائنات وخرائط ومصفوفات.
في مثالك ، تكوين المراجع المتغيرة جدول. يحتوي هذا الجدول على عنصر واحد ، "الأجهزة" ، التي تكون قيمتها جدولًا آخر. هذا الجدول لديه 5 عناصر. أربعة من هذه العناصر ("C56" ، "Eltra" ، "Micore" ، و "Hid") لها سلاسل كقيمها. العنصر الخامس ("Keycard") له جدول كقيمة. الذي - التي يحتوي الجدول على عنصرين (6 ، 7) قيمهما هي جداول أخرى (كل عنصر من عنصرين).
نصائح أخرى
لديك جدول تكوين اثنين من الأشياء الفرعية داخله ، والأجهزة وبطاقة المفاتيح ، وهو أمر يمكن أن يكون خاضعًا للأجهزة. لقد مر بعض الوقت منذ أن استخدمت LUA ، ولكن للوصول ، على سبيل المثال ELTRA ، يمكنك كتابة config.devices.eltra والوصول إلى بطاقة مفاتيح 7 التي تكتبها config.devices.keycard [7] ، يمكنك القيام بالسرعة = config.devices.keycard [7].