仅通过写一个名字来调用Lua函数(没有括号)

时间:2013-05-17 17:04:01

标签: function variables lua

我期待使用像“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())

感谢

1 个答案:

答案 0 :(得分:13)

--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 ...