Lua 将一个函数声明为 false

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

if homeruns == 1 or homeruns == 2
then function BabeRuth() = false
end
点赞
用户26702
用户26702

我认为你想要的是这样的:

function_name = nil

你不想使用 function_name(),因为它 调用 函数。

但我不完全确定你在做什么。你是在试图移除一个函数(例如在安全沙盒环境中)吗?

2013-08-29 12:27:05
用户2303714
用户2303714

如果你想在满足某个条件后将函数BabeRuth重定义为在调用时返回false,你可以将其绑定到一个新的匿名函数,方法如下:

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

其中重点在于

BabeRuth = function() return false end

2013-08-29 12:31:36
用户107090
用户107090

我猜你可能需要如下代码:

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
2013-08-29 12:46:36