永发信息网

如何让LUA的Amount数值记住在原来基础自动加上1

答案:1  悬赏:60  手机版
解决时间 2021-04-07 19:11
  • 提问者网友:绫月
  • 2021-04-07 05:14
如何让LUA的Amount数值记住在原来基础自动加上1
最佳答案
  • 五星知识达人网友:逐風
  • 2021-04-07 06:36
如果希望每次访问 Amount 的时候让它自增,可以使用__index 但是如果 Amount是全局变量的话,最好就不要这样做了,因为这样的话你就要监听_G,这个的代价相对还是比较大的,所以你最好把amount放到一个表里,比如我放到tab里
具体代码如下
tab = {}
_tab = {}
_tab.amount = 0
meta = {
__index = function(t,k)
if k == "amount" then
_tab.amount = _tab.amount + 1
return _tab.amount
else
return _tab[k]
end
end,
__newindex = function(t,k,v)
_tab[k] = v
end}
setmetatable(tab,meta)

tab.amount = 4
print(tab.amount)
print(tab.amount)
print(tab.amount)
实现的过程是
建立一个映射表_tab
给表tab创建访问和创建原表,对应操作_tab里的元素
对应的访问和创建规则就可以你自己定了
有什么疑惑的话可以继续提问,我会跟进,但不保证多久跟进一次追问如何使用全局变量保存的最后一个位置的大小。
其次,怎样定义在另一个函数的身体功能。追答一个变量如果不申明为局部变量则就是全局变量
local a = 1 --申明局部变量a 并且赋值 1
b = 2 --全局变量赋值为2 不需要特殊申明可直接使用
function fun()
return 100
end
定义函数fun返回数字100
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯