如何在 Lua 中从一个字符串中获取一个语句(或代码块)?

有没有办法从 Lua 代码(字符串)中获取一个语句?

例如:

  1. "AddTwo(1, 3) + 9 + RandomValue(1, 3)"

  2. 不可

    "AddTwo(1, 3) + 9 + RandomValue(1, 3) SomeGlobalVariable = 1"

    "AddTwo(1, 3) + 9 + RandomValue(1, 3) function HeyImNewFunction() return [[Hello!]] end"

由于分号是可选的,这些不可行的示例可能是 Lua 中的两个语句。

哦,这个版本是 Lua 5.1!

点赞
用户107090
用户107090

由于语句可以是诸如 do...end 块之类的复合语句,因此您不能在没有解析器的情况下识别“简单”语句。

如果您想要的是 表达式 而不是语句,则只有在字符串包含表达式列表时,将字符串附加在 return 后才是有效的 Lua 代码。这可能已足够满足您的需要。至少它适用于您提供的例子。

2017-05-25 03:51:30