This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
api:non-standard-lua-libs:zh [2023/11/28 10:32] hfsr [输入输出功能] |
api:non-standard-lua-libs:zh [2023/12/10 14:52] (current) hfsr [基本函数] |
||
---|---|---|---|
Line 9: | Line 9: | ||
基本函数 | 基本函数 | ||
--------------- | --------------- | ||
- | 基本库中的[原函数](http://www.lua.org/manual/5.3/manual.html#6.1)是可用的,但有以下不同: | + | 基础库中的[原函数](http://www.lua.org/manual/5.3/manual.html#6.1)是可用的,但有以下不同: |
- `collectgarbage`**不可用**. | - `collectgarbage`**不可用**. | ||
Line 139: | Line 139: | ||
操作系统功能 | 操作系统功能 | ||
--------------------------- | --------------------------- | ||
- | `os` 库内的[原函数](http://www.lua.org/manual/5.2/manual.html#6.9)已经被部分重新实现。 | + | `os`库内的[原函数](http://www.lua.org/manual/5.2/manual.html#6.9)已经被部分重新实现。 |
- | - `os.clock` 被重新实现为返回一个近似的 CPU 时间,也就是计算机在一个执行器线程中实际运行的时间。这与计算机运行时间*不*一样,获取此时间请参见[[api:computer:zh|computer.uptime]]。 | + | - `os.clock`被重新实现为返回近似CPU时间,也就是计算机在一个执行器线程中实际运行的时间。这与计算机运行时间**不一样**,获取此时间请参见[[api:computer:zh|computer.uptime]]。 |
- | - `os.date` 被重新实现为游戏中的时间,并支持大多数格式。 | + | \\ |
- | - `os.execute` 被重新实现,相当于从已挂载的文件系统中通过 `shell.execute` 启动程序。传入的字符串相当于在 shell 内输入的命令。 | + | - `os.date`被重新实现为使用游戏内时间,并支持大多数格式。 |
- | - `os.exit` 抛出一个错误并试图终止当前的 coroutine。 | + | \\ |
- | - `os.setenv` 添加 Lua shell 的环境变量。 | + | - `os.execute`被重新实现,相当于从已挂载的文件系统中通过`shell.execute`启动程序。传入的字符串相当于在 shell 内输入的命令。 |
- | - `os.remove` 是 `filesystem.remove` 的别名。 | + | \\ |
- | - `os.rename` 是 `filesystem.rename` 的别名。 | + | - `os.exit`抛出一个错误并试图终止当前的协程。 |
- | - `os.setlocale` *不*可用。 | + | \\ |
+ | - `os.setenv`添加Lua shell的环境变量。 | ||
+ | \\ | ||
+ | - `os.remove`是`filesystem.remove`的别名。 | ||
+ | \\ | ||
+ | - `os.rename`是`filesystem.rename`的别名。 | ||
+ | \\ | ||
+ | - `os.setlocale`**不可用**。 | ||
+ | \\ | ||
- `os.time` 被重新实现为返回自世界创建以来的游戏时间。 | - `os.time` 被重新实现为返回自世界创建以来的游戏时间。 | ||
- | 注意这个时间是以“游戏内的秒”为单位的。要获得世界创建起的时间刻(tick),需要将其乘以 `1000/60/60` (因为一天有24000个时间刻) 然后减去 6000。这个 6000 的偏移量不是随便设计的,它可以确保早上 6 点确实是那个时候。Minecraft莫名其妙地认为早上六点是零,可能是因为那是一个新游戏开始的时间…… | + | 注意这个时间是以“游戏内秒”为单位的。要获得世界创建起的tick数,需要将其乘以 `1000/60/60`(因为一天有24000个时间刻)然后减去6000。这个6000的偏移量不是随便设置的,它可以确保早上6点确实是早上6点。Minecraft莫名其妙地认为早上六点是零,可能是因为那是新游戏开始的时间…… |
+ | \\ | ||
- `os.tmpname` 已被重新实现,可以创建一个未使用的名字挂载到 `/tmp` 下。 | - `os.tmpname` 已被重新实现,可以创建一个未使用的名字挂载到 `/tmp` 下。 | ||
额外增加了一个函数: | 额外增加了一个函数: | ||
- | - `os.sleep(seconds: number)` 允许在指定的时间内暂停脚本。`os.sleep` 消耗事件,但注册的处理函数和线程在休眠时仍会接收事件。换句话说,在睡眠状态下,信号仍然会被处理函数处理,也就是说你无法在睡眠结束后拉取睡眠期间堆积的信号,因为没有信号会留在队列中(或者说至少不是全部信号)。 | + | - `os.sleep(seconds: number)`允许暂停脚本指定时间长度。`os.sleep`会消耗事件,但注册的处理函数和线程在休眠时仍会接收事件。换句话说,在睡眠状态下,信号仍然会被处理函数处理,也就是说你无法在睡眠结束后拉取睡眠期间堆积的信号,因为没有信号会留在队列中(或者说至少不是全部信号)。 |
- | [[api:computer:zh|computer(电脑) API]] 提供了一些类似这个类别的函数。 | + | 此类别的一些新函数可以在[[api:computer:zh|computer(电脑) API]]中找到。 |
调试 | 调试 | ||
----- | ----- | ||
- | 只实现了 `debug.traceback` 和 `debug.getinfo` (1.5.9 起),后者仅限被动信息。 | + | 只实现了`debug.traceback`和`debug.getinfo`(1.5.9起),仅限被动信息。 |
目录 | 目录 | ||
----------- | ----------- | ||
{{page>api:contents:zh&noheader&noeditbutton&nouser&nofooter}} | {{page>api:contents:zh&noheader&noeditbutton&nouser&nofooter}} |