【发布时间】:2020-08-03 17:39:46
【问题描述】:
我是 Lua 新手,并试图了解 Lua 中的 OOP 概念。为此,我尝试创建一个对象并创建方法和“私有变量”。 我的问题是,当我尝试使用“setters”或“getters”时,这表明我的表正在返回 NIL,这意味着我遇到了范围问题或其他问题否则我想不通。
关键是我正在使用来自在线 Lua 编码教程的示例,当我运行该教程时,它可以完美运行。但是,当我运行我的时,每当我尝试从成员函数之一“获取”或返回值时,我都会得到 NIL 或没有输出。
我使用了几个不同的环境:
- ZeroBrain
- 崇高的文字
- 适用于 Windows 的 Lua
你知道为什么我的代码没有返回填充的表格吗?
newPlayer = function(n, h, a, r)
player = {}
n = n or ""
h = h or 100
a = a or 100
r = r or 0
function player:getPlayerName()
return n
end
function player:getPlayerHealth()
return h
end
function player:getPlayerArmor()
return a
end
function player:getPlayerRank()
return r
end
function player:setPlayerName(arg)
n = arg
end
function player:setPlayerHealth(arg)
h = arg
end
function player:setPlayerArmor(arg)
a = arg
end
function player:setPlayerRank(arg)
r = arg
end
function player:connect(arg)
print(string.format(" %s joined" , arg))
end
return player
end
player1 = newPlayer("John", 100, 100, 1000)
player1.getPlayerName()
【问题讨论】: