كيف يمكنني إنشاء جدول في لوا ، ثم إضافة قيم من C API؟
سؤال
إليك ما لدي حتى الآن ... إنه يخلق جدولًا عالميًا يسمى "MOD" ، لكن لا يمكنني إضافة فهارس إلى الجدول ...
lua_newtable(L);
lua_setglobal(L,"mod");
المحلول
ال كتيب يقول:
void lua_setfield (lua_State *L, int index, const char *k);
هل يعادل
t[k] = v
, ، أينt
هي القيمة في الفهرس الصحيح المعطى وv
هي القيمة في الجزء العلوي من المكدس.هذه الوظيفة تنبثق القيمة من المكدس.
لذا ، بدقة أكثر: ادفع كل ما تريد إضافته على المكدس ، ثم اتصل lua_setfield
. علي سبيل المثال:
lua_pushnumber( L, 42 );
lua_setfield( L, -2, "answer_to_life_universe_and_rest" )
هذا يدرج الحقل "applon_to_life ..." مع القيمة 42
في الجدول.
لا تنتمي إلى StackOverflow