Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
api:non-standard-lua-libs:zh [2023/11/28 10:14]
hfsr [模块]
api:non-standard-lua-libs:zh [2023/11/28 10:18]
hfsr [位操作]
Line 35: Line 35:
  
   * ''​require(library:​ string): table''  ​   * ''​require(library:​ string): table''  ​
-  返回给定名称对应的`library`。首先,如果该库先前已被加载过,那么`package`库已经缓存它了,`require`会返回该库的缓存版本。如果想要卸载已预缓存的库,参见`package.loaded`。如果库没有被缓存,就会搜索`package.path`直到找到匹配的库。 +  返回给定名称对应的`library`。首先,如果该库先前已被加载过,那么`package`库已经缓存它了,`require`会返回该库的缓存版本。如果想要卸载已预缓存的库,参见`package.loaded`。如果库没有被缓存,就会搜索`package.path`直到找到匹配的库。 ​  
 +\\
   * ''​package.path''  ​   * ''​package.path''  ​
-**我们建议用户不要修改默认的`package.path`,相反地,用户应该把自定义库放入`/​usr/​lib/​`中。** +**我们建议用户不要修改默认的`package.path`,相反地,用户应该把自定义库放入`/​usr/​lib/​`中。** ​  
- +  定义了一个供 `require` 遍历寻找库的搜索路径列表。它是一个用分号分隔的路径列表,使用`?​`作为传递给`require`库名的占位符。下面的例子会使它更容易理解。  ​ 
-  定义了一个供 `require` 遍历寻找库的搜索路径列表。它是一个用分号分隔的路径列表,使用`?​`作为传递给`require`库名的占位符。下面的例子会使它更容易理解 +\\ 
- +  默认 package.path:  ​ 
-  默认 package.path: +`/​lib/?​.lua;/​usr/​lib/?​.lua;/​home/​lib/?​.lua;​./?​.lua;/​lib/?/​init.lua;/​usr/​lib/?/​init.lua;/​home/​lib/?/​init.lua;​./?/​init.lua` ​  
- +\\ 
-  ​`/​lib/?​.lua;/​usr/​lib/?​.lua;/​home/​lib/?​.lua;​./?​.lua;/​lib/?/​init.lua;/​usr/​lib/?/​init.lua;/​home/​lib/?/​init.lua;​./?/​init.lua` +  如果用户尝试导入"​foobar" ​  
- +  `local foobar = require("​foobar"​)` ​  
-  如果用户尝试导入"​foobar"​ +\\ 
- +  以下是`require`为了执行require("​foobar"​) 而会去查找的文件的顺序。为了有趣,我们假设当前工作目录是 /​tmp/​。 ​ 
-  `local foobar = require("​foobar"​)` +
- +
-  以下是`require`为了执行require("​foobar"​) 而会去查找的文件的顺序。出于有趣,我们假设当前工作目录是 /tmp/。 +
     - /​lib/​foobar.lua     - /​lib/​foobar.lua
     - /​usr/​lib/​foobar.lua     - /​usr/​lib/​foobar.lua
Line 60: Line 56:
     - /​home/​lib/​foobar/​init.lua     - /​home/​lib/​foobar/​init.lua
     - /​tmp/​foobar/​init.lua     - /​tmp/​foobar/​init.lua
 +\\
   * ''​package.loaded''  ​   * ''​package.loaded''  ​
-**修改package.loaded的行为并非标准操作** +**修改package.loaded的行为并非标准操作** ​ 
   一个包含已缓存库源码的表,键为库的名称(即传入 `require` 的那个),值是缓存的库本身。将该表中的某个值设为`nil`的效果为从缓存中删除这个库。为了操作系统的正常运行,有些库会假定保持加载状态。   一个包含已缓存库源码的表,键为库的名称(即传入 `require` 的那个),值是缓存的库本身。将该表中的某个值设为`nil`的效果为从缓存中删除这个库。为了操作系统的正常运行,有些库会假定保持加载状态。
  
 字符串操作 字符串操作
 ------------------- -------------------
-`string` 库内的[原函数](http://​www.lua.org/​manual/​5.2/​manual.html#​6.4)均可用,没有任何变化。+`string`库内的[原函数](http://​www.lua.org/​manual/​5.2/​manual.html#​6.4)均可用,没有任何变化。
  
-注意,GPU API 中的函数可以接收 ​UTF-8 字符串,进而 `term.write` 和 `print` 也可以。为了帮助你处理 UTF-8 字符串,我们准备了一个额外的库,即 [[api:​unicode:​zh|Unicode API]]。+注意,GPU API中的函数工作于UTF-8字符串环境下,进而`term.write`和`print`也一样。为了帮助你处理UTF-8字符串,我们准备了一个额外的库,即[[api:​unicode:​zh|Unicode API]]。
  
 表操作 表操作
 ------------------ ------------------
-`table` 库内的[原函数](http://​www.lua.org/​manual/​5.2/​manual.html#​6.5)均可用,没有任何变化。+`table`库内的[原函数](http://​www.lua.org/​manual/​5.2/​manual.html#​6.5)均可用,没有任何变化。
  
 数学函数 数学函数
Line 86: Line 81:
 位操作 位操作
 ------------------ ------------------
-`bit32` 库内的[原函数](http://​www.lua.org/​manual/​5.2/​manual.html#​6.7)均可用,没有任何变化。+`bit32`库内的[原函数](http://​www.lua.org/​manual/​5.2/​manual.html#​6.7)均可用,没有任何变化。
  
 输入输出功能 输入输出功能