输入Lua?就像一个控制台?

时间:2015-07-29 04:34:58

标签: lua

我正在尝试为朋友制作一个脚本教程(我自己也不太擅长但是还可以)而且我正在尝试这样做以便输入创建一个实际的代码行来完成他们输入的内容。 EG:

Input: print("hello")
hello

我理解这就是控制台所做的,但是有什么方法可以用Lua做到这一点吗?

感谢。

3 个答案:

答案 0 :(得分:2)

只需运行lua命令即可获得lua" REPL":

$ ./lua
Lua 5.3.1  Copyright (C) 1994-2015 Lua.org, PUC-Rio
> print("hello")
hello
> 

答案 1 :(得分:1)

load

  

load(ld [,source [,mode [,env]]])

     

加载一块。

     

如果ld是一个字符串,那么chunk就是这个字符串。

     

...

     

如果没有语法错误,则将编译的块作为函数返回;否则,返回nil加上错误信息。

local input = [[
    local args = {...}
    print(args[1], args[3]) -- 42   1
    return args[1] + args[2], args[2] + args[3]
]]

print(load(input)(42, 99, 1)) -- 141    100

正如您所看到的,输入可以访问全局变量,您可以将值传递给他的代码并获得返回。

答案 2 :(得分:0)

执行此操作的一种方法是使用 loadstring 函数。

示例:

run = loadstring("print('Hello World!'") 
run()

输出:

  

Hello World!