【问题标题】:Creating a Lua Table from a const char **从 const char 创建 Lua 表 **
【发布时间】:2016-10-16 06:32:03
【问题描述】:

我有一个 const char **,它的长度会有所不同,但我想从 const char ** 创建一个 Lua 数组。

Myconst char ** 是这样的

arg[0]="Red"
arg[1]="Purple"
arg[2]="Yellow"

我需要将此数组转换为 Lua 中的全局表,但由于我不太擅长操作 Lua,因此我不确定如何处理。

【问题讨论】:

    标签: c++ lua lua-table


    【解决方案1】:
    int main()
    {
       char* arg[3] = {
          "Red",
          "Purple",
          "Yellow" };
    
       //create lua state
       Lua_state* L = luaL_newstate();
    
       // create the table for arg
       lua_createtable(L,3,0);
       int table_index = lua_gettop(L);
    
       for(int i =0; i<3; ++i )
       {
          // get the string on Lua's stack so it can be used
          lua_pushstring(L,arg[i]);
    
          // this could be done with lua_settable, but that would require pushing the integer as well
          // the string we just push is removed from the stack
          // notice the index is i+1 as lua is ones based
          lua_rawseti(L,table_index,i+1);
       }
    
       //now put that table we've been messing with into the globals
       //lua will remove the table from the stack leaving it empty once again
       lua_setglobal(L,"arg");
    }
    

    【讨论】:

    • 好的,非常感谢您的回答,这很容易。我现在了解表格的结构。
    猜你喜欢
    • 2021-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-07
    • 1970-01-01
    • 1970-01-01
    • 2018-11-16
    相关资源
    最近更新 更多