4

我期待使用像“asdf”这样的变量,而不是编写名称函数来检查它的返回(不时更改)。这就是为什么“asdf”变量应该在我们每次使用(调用)它时更新它的值

请问有没有办法在Lua中做到这一点?

asdf == getFunction() --we define it here

     (...)            --some code 

if asdf < 10 then ... --here we call the variable (so it should get/update again the result of getFunction())

谢谢

4

1 回答 1

15
--we define it here
local asdf = function ()  
  return getFunction()
end

--some code 
(...)            

--here we call the variable 
--(so it should get/update again the result of getFunction())
if asdf() < 10 then ... 

UPD:
不带括号的解决方案

--we define it here
asdf = nil
setmetatable(_G, {__index =
   function(t, k)
      if k == 'asdf' then
         return getFunction()
      end
   end
})

--some code
(...)

--here we call the variable
--(so it should get/update again the result of getFunction())
if asdf < 10 then ...
于 2013-05-17T17:35:21.123 回答