Lua声明一个函数是假的

时间:2013-08-29 12:24:04

标签: lua

如何根据条件在Lua中将整个函数命名为false? 例如:

if homeruns == 1 or homeruns == 2
then function BabeRuth() = false
end

3 个答案:

答案 0 :(得分:5)

我猜这里,但也许你想要这个:

function BabeRuth()
  if homeruns == 1 or homeruns == 2 then
    return false
  else 
    return true
  end
end

可以更简洁地写成

function BabeRuth()
  return not (homeruns == 1 or homeruns == 2)
end

继续我的猜谜游戏,也许你想要这个,而不是依赖于全局变量:

function BabeRuth(homeruns)
  return not (homeruns == 1 or homeruns == 2)
end

答案 1 :(得分:1)

我相信你想要的是:

function_name = nil

您不希望function_name(),因为调用该函数。

但我并非100%确定我知道你在做什么。您是否尝试删除某个函数(例如在沙盒上下文中为了安全性?)?

答案 2 :(得分:0)

如果要在满足条件后重新定义函数BabeRuth以在调用时(从那时起)返回false,则可以将其绑定到新的匿名函数,如下所示:

> homeruns = 1
> if homeruns == 1 then BabeRuth = function() return false end end
> BabeRuth()
false

主要部分是

BabeRuth = function() return false end