lua – 尝试索引本地的“自我”(一个零价值)
发布时间:2020-12-15 00:27:35 所属栏目:大数据 来源:网络整理
导读:我有一个类的问题.我得到以下错误: 尝试索引本地“自我”(一个零价值) 当我调用下面的getter方法. Item.lua文件: require "classlib"Item = class("Item")function Item:__init() self.interval = 1endfunction Item:getInterval() return self.intervalen
我有一个类的问题.我得到以下错误:
尝试索引本地“自我”(一个零价值) 当我调用下面的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书/教程. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |