【问题标题】:Input to Lua? Just like a console?Lua的输入?就像一个控制台?
【发布时间】:2015-08-01 06:57:09
【问题描述】:

我正在尝试为朋友制作脚本教程(我自己不太擅长,但还好),我正在尝试制作它,以便输入创建一个实际的代码行来执行他们键入的内容.例如:

Input: print("hello")
hello

我知道这是控制台的作用,但有什么方法可以用 Lua 做到吗?

谢谢。

【问题讨论】:

    标签: lua


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      load

      加载(ld [, source [, mode [, env]]])

      加载一个块。

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

      ...

      如果没有语法错误,则将编译后的块作为函数返回;否则,返回 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
      

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

      【讨论】:

        【解决方案3】:

        一种方法是使用 loadstring 函数。

        例子:

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

        输出:

        世界你好!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-05-23
          • 2010-10-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-09-06
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多