以下是 Lua 的一些函数和变量,它们可以在标准安装的 Lua 5.1.4 中使用。 但是,有一些函数在 Roblox 上使用的方式有些不同。
概要
职能
如果提供的 value 解决为 false 或 nil ,将发生错误。
停止线程执行并投出错误。
返回总计算机内存大小(千字节)。
返回指定表的 metatable。
返回一个递归函数和一个表以在循环中使用。
将提供的代码作为可以执行的函数返回。
创建一个空的 userdata ,具有可选项以便它有一个 metatable。
用于循环的创建者函数。
返回一个iterator函数和提供的表以便在 for 循环中使用。
运行提供的函数,并且在它抛出的任何错误上捕获任何错误,并将其成功和结果返回给函数。
将所有提供的值打印到输出。
返回是否 v1 与 v2 平移,以及它们的 metamethodes。
通过绕过任何 metamethods 获得 table[index] 的实际值。
返回字符串或表的长度,无视任何 metamethods 。
通过迂回任何 metamethods 设置 table[index] 的实际值。
返回该给予的模块脚本的值,如果它还没有运行。
返回给定索引后的所有参数。
设置给定表的 mettab。
如果无法,将提供的值返回一个数字或零。
如果无法,将提供的值返回一个字符串或零。
返回提供的对象的基础类型。
将所有元素从给定的列表返回为表。
与 pcall() 类似,但它使用自定义错误处理器。
职能
assert
如果提供的 value 是 false 或 nil ,它将抛出一个错误。如果声明通过,它将返回所有通过它的值。
local product = 90 * 4assert(product == 360, "Oh dear, multiplication is broken")-- The line above does nothing, because 90 times 4 is 360
参数
值将被要求。
如果语句失败,将在错误中显示的文本。
返回
getmetatable
如果给定的表有一个,返回其 metatable t ,如果它没有,返回 nil。如果 t 有一个 metatable,并且 __metatable 已设置为 metamethode,它将返回该值。
-- 展示 getmetatable:local meta = {}local t = setmetatable({}, meta)print(getmetatable(t) == meta) --> 是-- 通过设置 __metable 原始表恢复不可能:meta.__metatable = "protected"print(getmetatable(t)) --> protected
参数
获取的对象。
返回
loadstring
从字符串中加载 Lua 代码,并将其作为函数返回。
与标准 Lua 5.1 不同,Roblox 的 Lua 不能使用 loadstring() 加载 Lua 的二进制版本。
loadstring() 默认为禁用。有关启用它的指导,请参阅 ServerScriptService。
警告: 此方法会禁用 Luau 优化在返回函数上。 请在使用 loadstring() 时使用 Global.LuaGlobals.getfenv() 和 0> Global.LuaGlobals.setfenv() 来保护返回函数的环境,以确保用
返回
next
返回阵数组中的第一个键/值对。如果指定了一个 lastKey 参数,则根据提供的键返回阵列中的下一个元素。索引的顺序不是指定的,即使是数字索引。要在表中导航时,请使用一个数学为循环或 ipairs 。
下次交叉时,如果您将任何值分配到表中的非存在字段,它将无法解释。但您可以修改现有字段。例如,您可以清除现有字段。
参数
要穿越的阵列。
上次从调用到下一个的最后一个钥匙。
返回
接受任何数量的参数,并将其值打印到输出。 print 不是用于格式输出的,但仅作为快速显示值的方式,通常用于调试。 对于格式输出,请使用 string.format() 。在 Roblox 上,
参数
输出任何数量的参数。
返回
require
运行提供的 ModuleScript 和返回的
如上所述,“对象共享”行为不会跨越客户端-服务
请注意,如果 ModuleScript 用户想要运行已上传到 Roblox (用实例名为 MainModule),可以通过使用 require() 函数在资产 ID 上的 11 2>Class.ModuleScript2> 上加载,尽管仅在服务器上。
参数
将执行的 ModuleScript 以取回它提供的返回值。
返回
什么 ModuleScript 返回(通常是表或函数)。
setmetatable
将给定的表 t 设置为 newMeta 。如果 newMeta 为空,表 1> t1> 将被移除。最后,此函数将返回
local meta = {__metatable = "protected"}local t = {}setmetatable(t, meta) -- 这将 t 的 metatable 设置为-- 我们现在有一个表,t,有一个 metatable。如果我们尝试更改它...setmetatable(t, {}) --> Error: cannot change a protected metatable
参数
用于设置表的 metatable。
如果为零,给定的表的 metatable 将被移除。否则,为给定的表设置的 metatable 将为 t 。
返回
tonumber
尝试将参与器转换为指定的基础以解释其中的值。如果无法转换,这个函数将返回 null。
基地可以是任何数量,它们包括在 2 和 36 之间。在 10 以上的基地上,字母 “A” (在上方或下方) 代表 10, “B” 代表 11,从而类似,“Z” 代表 35。在 10 基地 (默认值) 中,只有未签号的整数,还有一个可选的浮点部分。在其他基地中,只有指定的整数才
如果字符串开始于 0x 且不提供基础,0x 将被删除,基础默认为 16 或十六进制。
print(tonumber("1337")) --> 1337 (假设基础 10、十六进制)print(tonumber("1.25")) --> 1.25 (基础 10 可能有十六进制部分)print(tonumber("3e2")) --> 300(基础 10 可能有乘数部分,3 × 10 ^ 2)print(tonumber("25", 8)) --> 21(8 进制、十六进制)print(tonumber("0x100")) --> 256 (假设基础 16、十六进制)print(tonumber("roblox")) --> nil(不会提升错误)-- 提示:如果您想要使用不可转换的数字来提升错误,请使用 with 声明print(assert(tonumber("roblox"))) --> Error: assertion failed
参数
将要转换为数字的对象。
将数量基础转换为 arg。
返回
tostring
收到任何类型的参数,并将其转换为一个合理格式的字符串。 要完全控制数字如何转换,请使用 string.format。 如果 e 的 metabel 有一个 __tostring 的 metamethod,它将以 e 作为唯一的参数返回结果。
local isRobloxCool = true-- 将Boolean转换为字符串,然后 concatenate:print("Roblox is cool: " .. tostring(isRobloxCool)) --> Roblox is cool: true
参数
将要转换为字符串的对象。
返回
属性
_G
一个表,它的所有脚本都共享在一个相同的上下文等级别。
_VERSION
一个全球变量(不是函数),可以容纳包含当前解释器版本的字符串。