String 是否可以在Lua中将表达式转换为字符串?
我假设这是不可能的,但我只是想知道是否可以将表达式转换为字符串 例如,下面将五和五相加String 是否可以在Lua中将表达式转换为字符串?,string,lua,String,Lua,我假设这是不可能的,但我只是想知道是否可以将表达式转换为字符串 例如,下面将五和五相加 print(tostring(5 + 5)) --> 10 我想知道你是否可以按照下面的思路做点什么 print(tostring(5 + 5)) --> 5 + 5 我想知道,因为我正在制作一个图形计算器,要创建一个函数,它必须是一个字符串。我希望我可以使它更易于使用,这样你就可以输入一个表达式,比如x^2,而不是“x^2”,你要做的是将表达式5+5转换成字符串“5+5” 好了,你不能在卢阿
print(tostring(5 + 5)) --> 10
我想知道你是否可以按照下面的思路做点什么
print(tostring(5 + 5)) --> 5 + 5
我想知道,因为我正在制作一个图形计算器,要创建一个函数,它必须是一个字符串。我希望我可以使它更易于使用,这样你就可以输入一个表达式,比如
x^2
,而不是“x^2”
,你要做的是将表达式5+5
转换成字符串“5+5”
好了,你不能在卢阿这样做。但是,通过使用
loadstring
将“5+5”
转换为5+5
,可以实现相反的效果。希望对您有所帮助。如果您将表达式作为某些Lua代码的一部分,您可以将该代码解析为类似抽象语法树(AST)的内容,然后将该AST转换为您需要的任何结构,可能是字符串或函数(这对于图形计算器来说可能更方便)
有几个Lua解析器可以做到这一点(既可以将Lua代码转换为AST,也可以从AST生成Lua代码);Metalua(仅5.1?仅字节码生成?)和TypedLua(5.2+)都可以做到这一点,并且还列出了其他一些Lua解析器。您的输入阅读器几乎肯定会得到一个字符串。。。除非您直接向它提供一个原始lua文件,并让lua将其解析为lua代码。您不能在lua中执行您想要的操作,但也不需要使用lua解析器来处理输入。使用io.read()时不接受输入。它们实际上在lua文件中。那么您使用lua本身用表达式解析文件?那么,你不能这么做。您可以使用metalua或您自己的解析器,我认为您可能在寻找错误的解决方案或方法。你能澄清一下你想做什么吗,比如举一个包含内容的文件的例子。