lua 如何运行其他文件中的函数,报错attempt to index global '(文件名)' (a nil value)
这样的,我的主程序main.lua:module(...or'',package.seeall)cwd='.';package.path=cwd..'/?.lua;'.....
这样的,我的主程序main.lua:
module(... or '', package.seeall)
cwd = '.';
package.path = cwd .. '/?.lua;' .. package.path;
require('fsm')
require ('step')
state_list = fsm.New(step); -- 问题出在这句上!
报错:
attempt to index global 'fsm' (a nil value)
我想是因为fsm本身没有赋值的缘故吧。
main.lua同文件夹下存有fsm.lua和step.lua两个文件。我想指定运行fsm.lua中的New函数,因为step文件中也有New函数。请问该如何处理?我想给一些程序形式相似的接口,看其他程序里也有类似的做法,但就是不知道问题出在哪里。初学lua, 请各位多多指教!! 展开
module(... or '', package.seeall)
cwd = '.';
package.path = cwd .. '/?.lua;' .. package.path;
require('fsm')
require ('step')
state_list = fsm.New(step); -- 问题出在这句上!
报错:
attempt to index global 'fsm' (a nil value)
我想是因为fsm本身没有赋值的缘故吧。
main.lua同文件夹下存有fsm.lua和step.lua两个文件。我想指定运行fsm.lua中的New函数,因为step文件中也有New函数。请问该如何处理?我想给一些程序形式相似的接口,看其他程序里也有类似的做法,但就是不知道问题出在哪里。初学lua, 请各位多多指教!! 展开
展开全部
诶?有可能是fsm:New(step)不?~
你看看那个包源代码咋写的。
fsm是你自己写的么?
你看看那个包源代码咋写的。
fsm是你自己写的么?
追问
貌似不行。。。
fsm这个文件是我写的,大概就是写了一些函数。。。关键是fsm和step都有函数名一样的函数,然后我想指定运行fsm文件里的函数还是step文件里的函数。。。
追答
local fsm = require('fsm')
local step = require ('step')
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询