Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/cplusplus11/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
(lua)参数t在此搜索函数中的作用是什么?_Lua - Fatal编程技术网

(lua)参数t在此搜索函数中的作用是什么?

(lua)参数t在此搜索函数中的作用是什么?,lua,Lua,下面的代码是Lua编程中的多重继承演示 局部函数搜索(k,plist) 对于i=1,plist do 本地v=plist[i][k] 如果为v,则返回v end 结束 结束 函数createClass(…) 局部c={} 本地父项={…} --参数t的作用是什么? 可设置元表(c,{uuu index=function(t,k) 返回搜索(k,父项) 结束}) c、 指数=c 功能c:新(o) o=o或{} 可设置元表(o,c) 返回o 结束 返回c 结束 帐户={ 余额=0, 收回=功能(se

下面的代码是Lua编程中的多重继承演示

局部函数搜索(k,plist)
对于i=1,plist do
本地v=plist[i][k]
如果为v,则返回v end
结束
结束
函数createClass(…)
局部c={}
本地父项={…}
--参数t的作用是什么?
可设置元表(c,{uuu index=function(t,k)
返回搜索(k,父项)
结束})
c、 指数=c
功能c:新(o)
o=o或{}
可设置元表(o,c)
返回o
结束
返回c
结束
帐户={
余额=0,
收回=功能(self,v)self.balance=self.balance-v end,
存款=功能(self,v)self.balance=self.balance+v end,
getbalance=函数(self)返回self.balance结束,
新=功能(自身,v)
v=v或{}
可设置元(v,自)
self.\uuu索引=self
返回v
完,,
}
命名={
name=“”,
getname=函数(self)返回self.name end,
setname=函数(self,n)self.name=n end,
}
NamedAccount=createClass(帐户,命名)
account=NamedAccount:new{name='Paul'}
打印(帐户:getname())
账户:setname(“凤凰城”)
打印(帐户:getname())
账户:存款(1000)
打印(帐户:getbalance())
账户:提款(221)
打印(帐户:getbalance())
如上面代码所示,参数t在语句
setmetatable(c,{{uu index=function(t,k)return search(k,parents)end})中的作用是什么。参数t似乎没有被使用。我试图删除它,但收到一条错误消息:

lua:Multi-heritation.lua:46:尝试调用nil值(方法“getname”)
堆栈回溯:
多重继承。lua:46:在主块中
[C] :在哪


看来我不能简单地删除它。有人能告诉我t在这里扮演什么角色吗?

t
是被索引的对象。如果您不需要它,您可以用下划线替换它:
\uu index=function(\uk)
@Egor Skriptunoff谢谢,我找到了。