lua – 尝试索引本地的“自我”(一个零价值)

我有一个类的问题.我得到以下错误
尝试索引本地“自我”(一个零价值)
当我调用下面的getter方法.
Item.lua文件
require "classlib"
Item = class("Item")

function Item:__init()
    self.interval = 1
end

function Item:getInterval()
    return self.interval
end

我这样调用这个getter函数

dofile("../src/item.lua")

item = Item()

function test_item()
    assert_equal(1,item.getInterval())
end

这里有什么问题?

亲切的问候…

解决方法

一般来说,您应该通过以下方式调用成员函数:.

在Lua中,冒号(:)表示一个函数调用,提供self作为第一个参数.

从而

A:foo()

大致相当于

A.foo(A)

如果没有在A.foo()中指定A,那么该函数的主体将尝试引用self参数,该参数尚未被显式地或者不被隐式地填充.

请注意,如果从成员函数内部调用它,self将已经可用:

-- inside foo()
-- these two are analogous
self:bar()
self.bar(self)

所有这些信息,你会发现在任何好的Lua书/教程.

相关文章

1.github代码实践源代码是lua脚本语言,下载th之后运行thmai...
此文为搬运帖,原帖地址https://www.cnblogs.com/zwywilliam/...
Rime输入法通过定义lua文件,可以实现获取当前时间日期的功能...
localfunctiongenerate_action(params)localscale_action=cc...
2022年1月11日13:57:45 官方:https://opm.openresty.org/官...
在Lua中的table(表),就像c#中的HashMap(哈希表),key和...