This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
api:zh [2023/10/16 10:35] hfsr [API] |
api:zh [2023/11/28 10:03] hfsr [自定义库] |
||
---|---|---|---|
Line 5: | Line 5: | ||
------------------ | ------------------ | ||
- | 最基本也是最首要的,如果你是 Lua 新人,你应该熟悉 [[http://www.lua.org/manual/5.3/manual.html|Lua 参考手册]](英文)。你会在这里找到大部分基本 Lua 功能和例子,以及大量标准库功能。 | + | 最首要的,如果你是 Lua 新人,应该先熟悉[[http://www.lua.org/manual/5.3/manual.html|Lua参考手册]](英文)或[[https://www.runoob.com/lua/|菜鸟教程网的Lua教程]]。你可以在其中找到大部分Lua基础函数的解释,以及大量标准库函数。 |
- | (译者注:中文读者可参见菜鸟教程的 [[https://www.runoob.com/lua/|Lua 教程]]。) | + | OC致力于高度模拟通常用于与主机系统交互的标准库,也就是I/O库。其中有少许不同,你可以在这里查看:[[api:non-standard-lua-libs:zh|与标准库的差异]]。最值得注意的是,debug库基本上不可用,以及`load` 只接受文本源代码文件,不接受二进制或预编译的Lua程序(出于安全因素考虑)。 |
- | OC 尽力去模拟大部分和系统互动的标准库,也就是 I/O 库。有少许不同,你可以在这里查看:[[api:non-standard-lua-libs:zh|与标准库的差异]]。最值得注意的是,几乎整个 debug 库都是不可用的,`load` 只接受文本源文件,不接受二进制或预编译的 Lua 程序(这是由于安全原因)。 | + | 下列标准库在全局环境下可用,因此可以直接使用,无需预加载到你的脚本中。 |
- | 下列标准库文件可以在全局环境下使用,它们不需要预加载到你的脚本中也能正常运行。 | + | * [[api:non-standard-lua-libs:zh#coroutine(协程)|coroutine]] |
- | + | * [[api:non-standard-lua-libs:zh#debug(调试)|debug]] | |
- | * [[api:non-standard-lua-libs:zh#协程操作|coroutine]] | + | * [[api:non-standard-lua-libs:zh#io(输入输出)|io]] |
- | * [[api:non-standard-lua-libs:zh#调试|debug]] | + | * [[api:non-standard-lua-libs:zh#math(数学)|math]] |
- | * [[api:non-standard-lua-libs:zh#输入输出设备|io]] | + | * [[api:non-standard-lua-libs:zh#os(操作系统)|os]] |
- | * [[api:non-standard-lua-libs:zh#数学函数|math]] | + | * [[api:non-standard-lua-libs:zh#package(包)|package]] |
- | * [[api:non-standard-lua-libs:zh#操作系统设备|os]] | + | * `print` 不是库,但是经常被用于向stdout(标准输出)输出文本。 |
- | * [[api:non-standard-lua-libs:zh#模块|package]] | + | |
- | * `print` 不是一个库,但是是一个常用的输出方法。 | + | |
```lua | ```lua | ||
Line 25: | Line 23: | ||
``` | ``` | ||
- | * [[api:non-standard-lua-libs:zh#字符串操作|string]] | + | * [[api:non-standard-lua-libs:zh#string(字符串)|string]] |
- | * [[api:non-standard-lua-libs:zh#表操作|table]] | + | * [[api:non-standard-lua-libs:zh#table(表)|table]] |
- | 自定义的库 | + | 自定义库 |
---------------- | ---------------- | ||
- | 下列是为了方便而提供的非标准库。 | + | 下列是为了便利而提供的非标准库的介绍。 |
- | 请注意,在使用所有非标准库之前,你需要 `require ` 它们,非标准库即所有没有在Lua基本参考手册中列出的标准库。举例来说,你不应该仅仅使用 `local rs = component.redstone`,你需要先通过 require 声明调用此API,就像这样: | + | 请注意,所有非标准API在使用之前都需要`require `,非标准库即所有未在[[http://www.lua.org/manual/5.3/manual.html|Lua参考手册]]或[[api:zh#标准库|标准库]]中列出的库。例如,你不可以只写一句`local rs = component.redstone`,你还需要先通过`require`调用此API,就像这样: |
```lua | ```lua | ||
Line 39: | Line 37: | ||
local rs = component.redstone | local rs = component.redstone | ||
- | -- 你当然可以更改变量名称: | + | -- 你当然可以修改变量名称: |
local mycomp = require("component") | local mycomp = require("component") | ||
local rs = mycomp.redstone | local rs = mycomp.redstone | ||
``` | ``` | ||
- | 以下列出的 API 都是这样(甚至 sides 和 colors 也是如此)。 | + | 以下列出的 API 都是这样(甚至`sides`和`colors`也是如此)。 |
- | 除了Lua提供的标准库外,OC 提供了两个内建的库。它们当中的一些功能可能无法使用,视你的配置(HTTP)或情况(计算机上无法调用机器人上的库)而定,但是它们仍然存在。 | + | 除了Lua提供的标准库外,OC还提供了一些额外的内置库。下面列出了这些库。请注意它们当中的一些可能无法使用,视你的配置(HTTP)或运行环境(电脑上无法调用机器人上的库)而定,但是它们仍然存在。 |
- | - [[api:buffer:zh|buffer]]:一个适用于包装好的流的 Lua `File*`<sup>原文如此</sup> API 缓冲区实现。 | + | - [[api:buffer:zh|buffer(缓冲)]]:Lua `File*` API缓冲区的实现,用于封装流。 |
- | - [[api:colors:zh|colors]]:一个被用来按标准引用的包含所有 Minecraft 颜色的表。 | + | - [[api:colors:zh|colors(颜色)]]:一份全局表,可用于以名称引用标准Minecraft颜色。 |
- | - [[api:component:zh|component]]:查找与管理所有连接到计算机的组件。 | + | - [[api:component:zh|component(组件)]]:查找与管理所有连接到电脑的组件。 |
- | - [[api:computer:zh|computer]]:通过 Lua 查询计算机的运行信息并与计算机交互的库。 | + | - [[api:computer:zh|computer(电脑)]]:查询运行Lua state的OC电脑信息,或与其交互。 |
- | - [[api:event:zh|event]]:一个事件系统, 通常被其他库调用, 用于注册信号接收程序。 | + | - [[api:event:zh|event(事件)]]:一个事件系统, 通常被其他库调用, 用于将处理函数注册到信号。 |
- | - [[api:uuid:zh|uuid]]:创建一串 8-4-4-4-12 格式的字符串。 | + | - [[api:uuid:zh|uuid]]:创建8-4-4-4-12格式的长唯一标识字符串(uuid)。 |
- | - [[api:fileSystem:zh|filesystem]]:一套抽象的文件系统交互。 | + | - [[api:fileSystem:zh|filesystem(文件系统)]]:抽象化的与文件系统组件的交互。 |
- | - [[api:internet:zh|internet]]:一个网卡功能的包装。 | + | - [[api:internet:zh|internet(网络)]]:一个网卡功能的封装。 |
- | - [[api:keyboard:zh|keyboard]]:一个按名称和按下的按键追踪按键的代码表。 | + | - [[api:keyboard:zh|keyboard(键盘)]]:提供了一份按键编码表,以及跟踪按键按下状态。 |
- | - [[api:note:zh|note]]:把音乐在 MIDI 代码、频率和实际音符间转换的库。 | + | - [[api:note:zh|note(音符)]]:将音符在实际名称、MIDI编码和频率间转换。 |
- | - [[api:process:zh|process]]:保持追踪正在运行的程序与运行环境。 | + | - [[api:process:zh|process(进程)]]:保持跟踪正在运行的程序与其运行环境。 |
- | - [[api:rc:zh|rc]]:Lua 提供的一套自动执行程序与服务管理的库。 | + | - [[api:rc:zh|rc(自动运行)]]:提供了自动运行程序和服务管理功能。 |
- | - [[api:robot:zh|robot]]:以抽象方法操作机器人的库。 | + | - [[api:robot:zh|robot(机器人)]]:对机器人行为的抽象化访问。 |
- | - [[api:serialization:zh|serialization]]:允许序列化值,例如当通过网络发送它们时。 | + | - [[api:serialization:zh|serialization(序列化)]]:用于将数值序列化,例如要通过网络发送数值时。 |
- | - [[api:shell:zh|shell]]:正在执行的程序路径跟踪与程序执行情况。 | + | - [[api:shell:zh|shell]]:追踪工作目录与执行程序。 |
- | - [[api:sides:zh|sides]]:一个允许根据按名称引用方向(面)的全局表。 | + | - [[api:sides:zh|sides(方向)]]:一份全局表,用于通过名称引用方向。 |
- | - [[api:term:zh|term]]:提供光标的概念,用于分别读写键盘输入和屏幕输出。 | + | - [[api:term:zh|term(终端)]]:提供了光标的概念,以及用于分别从键盘读取和向屏幕输出。 |
- | - [[api:text:zh|text]]:提供类似于 tab 转空格之类的文字实用程序。 | + | - [[api:text:zh|text(文本)]]:提供文本编辑相关功能,例如将tab转为空格。 |
- | - [[api:thread:zh|thread]]:提供自主且非阻塞的协作线程。 | + | - [[api:thread:zh|thread(线程)]]:提供自主且非阻塞的协作线程。 |
- | - [[api:transforms:zh|transforms]]:提供有用且强大的表操作器。 | + | - [[api:transforms:zh|transforms(转换)]]:提供有用且强大的表操作器。 |
- | - [[api:unicode:zh|unicode]]:提供 string 库某些功能的 Unicode 实现。 | + | - [[api:unicode:zh|unicode]]:提供 string 库某些功能支持 Unicode 的实现。 |
目录 | 目录 | ||
----------- | ----------- | ||
{{page>api:contents:zh&noheader&noeditbutton&nouser&nofooter}} | {{page>api:contents:zh&noheader&noeditbutton&nouser&nofooter}} |