从C API在Lua中创建简单列表
我正在尝试在C中实现从C API在Lua中创建简单列表,c,lua,C,Lua,我正在尝试在C中实现dir()函数,以便能够运行此lua代码: 02\u董事卢阿: dir() static int l_dir(lua_State *L) { lua_pushstring(L, "foo"); lua_pushstring(L, "file"); lua_pushnumber(L, 11); return 3; } 运行时,我在for行上遇到此错误: lua_pcall() failed: 02_dir.lua:2: attempt to
dir()
函数,以便能够运行此lua代码:
02\u董事卢阿:
dir()
static int l_dir(lua_State *L)
{
lua_pushstring(L, "foo");
lua_pushstring(L, "file");
lua_pushnumber(L, 11);
return 3;
}
运行时,我在for
行上遇到此错误:
lua_pcall() failed: 02_dir.lua:2: attempt to call a string value
您的问题是,您试图将返回值作为一个列表来处理,而它不是您所指的列表
将Lua文件更新为:
-- Define a function
local function init()
local name, filetype, size = dir("Lang")
print(name, filetype, size)
end
-- call it :)
init()
您的问题是,您试图将返回值作为一个列表来处理,而它不是您所指的列表
将Lua文件更新为:
-- Define a function
local function init()
local name, filetype, size = dir("Lang")
print(name, filetype, size)
end
-- call it :)
init()
Roberto Ierusalimschy的《Lua中的编程》一书对这项任务进行了充分的描述。这里有一个完整示例和说明的链接--这项任务在Roberto Ierusalimschy的《Lua编程》一书中有详细描述。这是一个带有完整示例和解释的链接--包括注册l\u dir
的行。如果通过这种方式调用,dir应该是一个迭代器函数,返回一个表并使用pair
将完成相同的工作。包括注册l\u dir
的行。如果通过这种方式调用,dir应该是一个迭代器函数,返回一个表,并使用pair
执行相同的操作。