我有一大段我希望能够(有选择地)忽略的 lua 代码。我没有不读它的选项,有时我希望它被处理,有时不是,所以我不能把它注释掉(也就是说,有一大堆代码块,我要么可以选择不阅读或全部阅读)。我想出了两种方法来实现它(可能还有更多——我是个初学者):要么将代码包含在一个函数中,然后调用或不调用该函数(一旦我确定我是通过了我将调用该函数的点,我可以将其设置nil
为释放内存)或将代码包含在if ... end
堵塞。前者有一些优势,因为有几个这样的块,并且使用前一种方法可以使一个块更容易加载另一个块,即使主程序没有请求它,但后者似乎更有效。但是,了解不多,不知道效率节省是否值得。
那么有多少效率是:
if false then
-- a few hundred lines
end
比
throwaway = function ()
-- a few hundred lines
end
throwaway = nil -- to ensure that both methods leave me in the same state after garbage collection
?
如果它很大程度上取决于 lua 实现,那么“几百行”需要多大才能可靠地发现差异,以及它应该包括什么样的东西才能最好地测试(块的主要用途是定义一个加载可能有用的功能)?