如何在 Lua 中将保留字作为标识符或变量使用?

我想把保留字 (while、for、and 等) 设置为函数变量。我该怎么做?

原文链接 https://stackoverflow.com/questions/5530039

点赞
stackoverflow用户689216
stackoverflow用户689216

那些关键字是有保留意义的。你不能简单地将它们变成变量。唯一的解决方案(如果你想让你的代码看起来很特别,但其实是错误的)是将它们修改为for_或for1等。没有转义序列可用于撤销之前保留的关键字。

2011-04-03 14:13:37
stackoverflow用户312586
stackoverflow用户312586

使用一个表格代替。可能是一个简短的名称。

x = {}
x.while = ...
x.for = ...

print(x.for)

编辑:这将_不会_起作用。抱歉。

2011-04-03 16:25:18
stackoverflow用户565840
stackoverflow用户565840

这个能工作,但不被推荐。

_G["for"] = 42

print(_G["for"]) 

回答评论:正如 AdrianMar 所说,保留这些是有原因的。此外,为什么要这样做呢?这是非常不可能的。最后,引用《Lua 编程》书中的一句话(第 14 章):

然而要小心:有些程序员过于兴奋,使用这些功能写出 _G["a"] = _G["var1"] 这样的代码,这只是写 a = var1 的一种复杂方式。

2011-04-04 13:43:51