尝试索引全局零值时发生Lua错误

尝试索引全局零值时发生Lua错误,lua,coronasdk,lua-table,Lua,Coronasdk,Lua Table,对于使用CoronasSDK的游戏,我尝试在Lua中实现一些OOP 如果我在Corona模拟器中运行以下代码: -- Terrain Sprites base local TerrBase = {} local TerrBase_mt = {_index = TerrBase} function TerrGrass_mt.baseAdd(a,b) print(a+b) end -- Terrain Sprites - Grass local TerrGrass = {} f

对于使用CoronasSDK的游戏,我尝试在Lua中实现一些OOP

如果我在Corona模拟器中运行以下代码:

-- Terrain Sprites base

local TerrBase = {}
local TerrBase_mt = {_index = TerrBase}

function TerrGrass_mt.baseAdd(a,b)
    print(a+b)
end



-- Terrain Sprites - Grass

local TerrGrass = {}

function TerrGrass.new()
    local grass = {}
    setmetatable(grass,TerrBase_mt)
    return grass
end

function TerrGrass.add(a,b)
    print(a+b)
end

function TerrGrass.sub(a,b)
    print(a-b)
end

function TerrGrass.mul(a,b)
    print(a*b)
end

function TerrGrass.div(a,b)
    print(a/b)
end

--

local grass = TerrGrass.new()

grass.add(5,7)
我得到这个信息:

这个错误的原因是什么

local TerrBase = {}
local TerrBase_mt = {_index = TerrBase}

function TerrGrass_mt.baseAdd(a,b)  -- <---- ERROR
    print(a+b)
end
索引局部nil值
b
时会出现错误,因为这里b的作用域是局部的


无论何时,当您以任何方式使用nil值时出现错误,您都必须找出该值为nil的原因,并修复该错误,或者在某些情况下用默认值替换它。

感谢您的详细回复!我在谷歌上搜索了更多的内容,找到了一个很好的Lua教程,我已经开始工作了。我编辑/添加了4个Lua脚本中的工作代码到OP。我非常感谢您的回复,并接受它作为答案。再次感谢:-)@Locohost你的问题是打字错误。添加不同的代码作为解决方案对任何人都没有帮助。您删除了所有重要信息(主要是正确格式和工作的OOP代码!),并将此帖子编辑到死角。这甚至不再是我的帖子了。@Locohost好吧,我删除了任何与您需要帮助的问题无关的内容。您的问题不是如何在Lua中实现OOP,而是为什么会收到错误消息以及您做错了什么。这个问题仍然存在,你的错误代码也仍然存在。请阅读。这都是关于专注!我并不是想根据指导方针改进你的帖子,从而伤害你的感情。下一个面对这个错误的人并不关心你在Lua中呆了多久,知道多少JavaScript,或者如何在Lua中实现OOP。他们需要索引全局nil值的示例。
function a(b) c = b.d end
a()