كيفية بسرعة التهيئة النقابي الجدول في لوا?
-
21-08-2019 - |
سؤال
في لوا ، يمكنك إنشاء جدول على النحو التالي :
local t = { 1, 2, 3, 4, 5 }
ومع ذلك, كنت تريد إنشاء الجدول النقابي ، يجب أن تفعل ذلك بالطريقة التالية :
local t = {}
t['foo'] = 1
t['bar'] = 2
التالي يعطي خطأ :
local t = { 'foo' = 1, 'bar' = 2 }
هل هناك طريقة للقيام بذلك كما أن أول مقتطف الشفرة ?
المحلول
والطريقة الصحيحة لكتابة هذه هي إما
local t = { foo = 1, bar = 2}
وأو، إذا كانت المفاتيح في الجدول الخاص بك ليست معرفات القانونية:
local t = { ["one key"] = 1, ["another key"] = 2}
نصائح أخرى
أنا أجد أنه يعمل على نحو أفضل قليلا ومفهومة إذا كنت ننظر إليها مثل هذا
local tablename = {["key"]="value",
["key1"]="value",
...}
إيجاد النتيجة مع : tablename.key=قيمة
الجداول القواميس
الجداول يمكن أيضا أن تستخدم لتخزين المعلومات التي لا فهرستها عدديا أو بالتتابع ، مع المصفوفات.التخزين هذه الأنواع هي في بعض الأحيان يسمى قواميس, صفائف النقابي ، التجزئة ، أو رسم الخرائط أنواع.سوف نستخدم مصطلح القاموس حيث عنصر زوج له مفتاح و قيمة.يستخدم المفتاح تعيين واسترداد قيمة المرتبطة بها مع ذلك.علما بأن مثل المصفوفات يمكننا استخدام الجدول[الرئيسية] = قيمة شكل لإدراج العناصر في الجدول.مفتاح لا يلزم أن يكون عددا ، يمكن أن تكون سلسلة ، أو ما يقرب من أي كائن لوا (باستثناء النيل أو 0/0).دعونا إنشاء جدول مع بعض قيمة المفتاح أزواج في ذلك:
t = { التفاح="الأخضر" البرتقالي="البرتقالي" ، الموز="صفراء" } k,v في أزواج(t) القيام طباعة(k,v) end الأخضر التفاح البرتقال الموز الأصفر
تهيئة النقابي الذي لديه سلسلة مفاتيح يقابله سلسلة القيم ، يجب عليك استخدام
local petFamilies = {["Bat"]="Cunning",["Bear"]="Tenacity"};
ولكن لا
local petFamilies = {["Bat"]=["Cunning"],["Bear"]=["Tenacity"]};