سؤال

في لوا ، يمكنك إنشاء جدول على النحو التالي :

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 الأخضر التفاح البرتقال الموز الأصفر

من : http://lua-users.org/wiki/TablesTutorial

تهيئة النقابي الذي لديه سلسلة مفاتيح يقابله سلسلة القيم ، يجب عليك استخدام

local petFamilies = {["Bat"]="Cunning",["Bear"]="Tenacity"};

ولكن لا

local petFamilies = {["Bat"]=["Cunning"],["Bear"]=["Tenacity"]};
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top