我有一段lua代码,我希望能够(有选择性地)忽略它。 我不能选择不读取它,并且有时我希望它被处理,有时不希望,所以我不能只注释掉它们(也就是说,有许多代码块,我要么选择阅读没有,要么阅读全部)。我想出了两种实现方式(可能有更多-我非常初学者):将代码包含在一个函数中,然后调用或不调用该函数(一旦确保已过调用该函数的点,我可以将其设置为
nil 来释放内存),或将代码包含在 if ... end 块中。前者稍微有些优点,因为有几个这样的块,并且使用前一种方法使得一个块更容易加载另一个块,即使主程序没有请求,但后者似乎更有效率。但是,由于我对此知之甚少,所以我不知道效率节省是否值得。那么,到底有多高效呢?
if false then
-- a few hundred lines
end
than
throwaway = function ()
-- a few hundred lines
end
throwaway = nil -- to ensure that both methods leave me in the same state after garbage collection
如果这很大程度上取决于lua的实现,那么需要多少“几百行”才能可靠地发现区别,并且应该包括什么样的内容来进行最佳测试(块的主要用途是定义许多可能有用的函数)?
if false then ... end
中没有效率检查吗?(我猜在读取时,条件状态实际上不经常出现,因此没有检查是有道理的。)顺便说一下,谢谢你的评论。 - Andrew Stacey