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, 请各位多多指教!!
展开
 我来答
tn瓶邪
2015-08-13 · TA获得超过1881个赞
知道小有建树答主
回答量:610
采纳率:98%
帮助的人:111万
展开全部
  screen变量没有赋值,因为动态语言,很多在运行时才报错。
  看看是不是变量名写错了,或者其他原因。
  lua也有调试器的,
不屑宠儿
2013-02-27 · TA获得超过578个赞
知道小有建树答主
回答量:373
采纳率:0%
帮助的人:395万
展开全部
诶?有可能是fsm:New(step)不?~
你看看那个包源代码咋写的。

fsm是你自己写的么?
追问
貌似不行。。。
fsm这个文件是我写的,大概就是写了一些函数。。。关键是fsm和step都有函数名一样的函数,然后我想指定运行fsm文件里的函数还是step文件里的函数。。。
追答
local fsm = require('fsm')
local step = require ('step')
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式