我尝试在C#App中提供一些脚本功能。 经过一些搜索后,Lua和LuaInterface看起来是一种合理的方式。 通过在我的C#代码中嵌入Lua VM,我可以加载Lua脚本和处理方法 在C#类中定义没有任何问题。
但是,我想知道有没有办法不仅执行lua脚本文件 我的c#程序,还有我的程序中的lua交互式提示符? 因此,我可以输入命令并立即查看返回。
任何关于我应该从哪里开始工作的提示都会非常有用!
最好的问候
答案 0 :(得分:2)
Lua的debug
模块包含一个非常基本的交互式控制台:debug.debug()
(Lua手册建议this module should be used only for debugging)。
如果这不符合您的需求,那么您自己很容易实现。如果你要用Lua本身编写它,绝对的裸骨控制台将是:
while true do
io.write("> ")
loadstring(io.read())()
end
语法或运行时错误都会崩溃。稍微小一点的版本,它捕获(并忽略)错误:
while true do
io.write("> ")
local line = io.read()
if not line then break end -- quit on EOF?
local chunk = loadstring(line)
if chunk then
pcall(chunk)
end
end
这可以通过显示语法错误(失败时来自loadstring
的第二个返回值),运行时错误(失败时来自pcall
的第二个返回值),来自评估代码的返回值来增强([2]。 .N]从成功后的pcall
返回值等等。
如果您希望真正花哨,您可以允许人们输入多行语句。查看源发行版中的src/lua.c
以了解如何完成此操作。