【问题标题】:Minecraft ComputerCraft Turtles require statement not workingMinecraft ComputerCraft Turtles 要求声明不起作用
【发布时间】:2015-05-06 08:52:06
【问题描述】:

我最近写了很多海龟程序,发现我不断地重写相同的函数。我想将所有这些函数放入它们自己的文件中,然后将它们包含在我的其他海龟程序的顶部。浏览 lua 文档似乎我需要使用require。但是我似乎无法让它工作。这是我尝试的一个基本示例:

程序1:

 print("Hello World")

程序2

require program1 

这导致了以下错误:

bios:366: [string "program2"]:1: '=' expected

然后我尝试将包路径设置为当前目录,然后再发出这样的 require 语句:

package.path = package.path .. ';./?.lua;'

那也没用。似乎海龟在 require 语句中没有使用与 lua 相同的语法(如果它们完全支持的话)

有没有办法对海龟做这样的事情?如果它使用'require',那么正确的语法是什么? (我无法访问我玩的服务器的文件,所以不能简单地编辑它们)

【问题讨论】:

    标签: lua minecraft computercraft


    【解决方案1】:

    您需要将program1 放在引号中:

    require "program1"
    

    【讨论】:

    • 感谢您的及时回复,但我确实尝试过,但它给出了这个错误:(program1:1:尝试调用 nil)我认为这只是意味着要求失败。
    • 这意味着 require 在 ComputerCraft 环境中不可用。请参阅@ColonelThirtyTwo 的替代答案。
    【解决方案2】:

    require 是一个函数;你需要使用函数语法来调用它:

    require("foo")
    -- or
    require "foo"
    

    ...但 ComputerCraft 似乎不支持 require 函数。试试os.loadAPI("path/to/file")

    (想要对 Lua 进行沙盒处理的开发人员:require supports configuring how it loads modules;请使用它而不是替换 require!)

    【讨论】:

      猜你喜欢
      • 2015-02-21
      • 2015-08-13
      • 2014-03-19
      • 2020-03-27
      • 2022-01-18
      • 2013-07-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多