我想创建一个C函数,它接受带有字符串作为参数的lua表,而lua表没有任何键,只有值。我怎样才能做到这一点?我想不明白。当我在谷歌搜索时,我没有找到任何东西。
答案 0 :(得分:1)
"默认"表中的键是从1开始的连续整数。这个:
{"hello", "world"}
与:
相同{[1] = "hello", [2] = "world"}
您无法使用lua_getfield
访问这些条目,因为它会使用字符串键。你可以做"手册"方式,lua_pushnumber
和lua_gettable
。如果L
是lua_State*
,t
是堆栈中表格的索引,并且k
是密钥,则:
lua_pushnumber(L, k);
lua_gettable(L, t);
应该做同样的事情:
lua_getfield(L, t, k);
用于字符串键。请注意,如果t
是相对索引(负数),那么因为您要将其他项目推入堆栈,您需要将其调整为1。