table

显示已弃用

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

此库提供通用对表/阵列操作的函数,提供其所有的函数在全球 table 变量内。大多数函数在 table 库中假设表表示为阵列或列表。对于这些函数,表的 “长度” 代表表的长度操作器的结果。

概要

职能

  • clear(table : table):void

    将所有键设置为零。

  • 返回提供的表的深度副本。

  • concat(t : Array,sep : string,i : number,j : number):string

    将给定的表元的范围返回为串,每个元素由给定的分隔符分开。

  • create(count : number,value : Variant):table

    返回一个新的表,其中包含指定值的许多实例。

  • find(haystack : table,needle : Variant,init : number):Variant

    返回开始于 init 的 haystack 的第一个出现的索引。

  • 使指定的表只能读取。

  • insert(t : Array,pos : number,value : Variant):void

    将提供的值插入数组列的目标位置。

  • insert(t : Array,value : Variant):void

    将提供的值添加到数组列的末端。

  • 如果给定的表被冻结,返回 true 如果它未被冻结。

  • 返回提供的表的最大数字钥匙,或零,如果表没有数字钥匙。

  • move(src : table,a : number,b : number,t : number,dst : table):table

    从一个表中的指定元素复制到另一个表。

  • pack(values... : Variant):Variant

    返回一个包含所提供值的新表。

  • remove(t : Array,pos : number):Variant

    从数组列中移除指定元素,如果可能,将后续元素移动到填充空格。

  • sort(t : Array,comp : function):void

    使用提供的比较函数或 < 操作器排序表元素。

  • unpack(list : table,i : number,j : number):Tuple

    将所有元素从给定的列表返回为表。

职能

clear

void

将所有键值在指定的表中设置为零。这使得 # 操作器在指定的表中返回 0 。表的阵列部分的预留容量是维持的,这允许有效地重用空间。


local grades = {95, 82, 71, 92, 100, 60}
print(grades[4], #grades) --> 92、6
table.clear(grades)
print(grades[4], #grades) --> 零
-- 如果评分再次使用相同的条目数,
-- 无可能发生大小调整阵列
-- because the capacity was maintained by table.clear.

该函数不会删除/销毁提供给它的表。该函数是用于重用的表的专用。

参数

table: table

清除钥匙的桌子。

返回

void

clone

返回提供的表的未冰封副本。

参数

要克隆的表。

返回

提供的表的克隆。

concat

给出一个阵列,在所有元素都是字符串或数字,返回字符串 t[i] ... sep ... t[i+1] ... sep ... t[j]。默认值为 sep 是一个空字符串,默认值为 i 是 1 ,默认值为 j 是 #t。如果 i 大于 1> j

参数

将被转换为字符串的表。

sep: string

将在表中每个条目之间 concatenated 的字符串。

表 concatenation 的起始索引。

默认值:1

表 concatenation 的结束索引。

返回

create

创建一个包含以下元素所分配的阵列部分的表,可选填写以下 number 值。


local t = table.create(3, "Roblox")
print(table.concat(t)) --> RobloxRobloxRoblox

如果您正在插入大型阵列式表,并确定要达到合理的上限,那么建议您使用此函数来初始化表。这可以确保表的阵列部分的内存足够大,因为它可能很贵。对于小量子,这通常不会有影响。

参数

count: number
value: Variant

返回

find

Variant

在给定的阵列表中,查找第一个值 needle 的出现,从索引 init 或开始如果未提供,或返回 1>nil1>。如果值未找到,返回 4>nil4>。

直线搜索 算法执行。


local t = {"a", "b", "c", "d", "e"}
print(table.find(t, "d")) --> 4
print(table.find(t, "z")) --> nil,因为 z 不在表中
print(table.find(t, "b", 3)) --> nil, because b appears before index 3

参数

haystack: table
needle: Variant
init: number

返回

Variant

freeze

这个函数使指定的表只读,有效地将其“冻结”在其当前状态。尝试修改冰封的表会发生错误。

此冻结效果浅,这意味着您可以在冰冻桌子内写入冰冻桌子。要深冻桌子,请在所有下降的桌子上递归此函数。

参数

要冰冻的表。

返回

冰冻桌子。

insert

void

将提供的值插入数组列的目标位置。

参数

正在添加的表。

pos: number

值将被插入的位置。

value: Variant

将被添加到表中的值。

返回

void

insert

void

将提供的值添加到数组列的末端。

参数

正在添加的表。

value: Variant

将被添加到表中的值。

返回

void

isfrozen

此函数将返回 true 如果指定的表被冻结,false 如果它未被冻结。您可以使用 table.freeze() 来冻结表。

参数

检查表。

返回

表是否从 table.freeze() 中冻结。

maxn

返回提供的表的最大数字钥匙,或表没有数字钥匙的零。在表中的空格被忽略。

参数

返回

move

复制元素在表 srcsrc[a]src[b] 到表 1> dst1> 开始从索引开始 4> t4> . 相当于分配声明 7> dst[t], ..., ds

默认值为 dstsrc 。 目的地范围可能会与源范围重叠。

返回 dst 为了方便。

参数

src: table

源表。

src[a] 开始复制。

复制包含在 src[b] 内的所有内容。

复制到 dst[t], ...

dst: table

目的地表。

默认值:src

返回

dst,为了方便。

pack

Variant

返回一个新的表,其中所有参数都存储在钥匙 1、2、等中,并且带有“n”字段,总共参数数为。注意,结果表可能不是顺序。


local t = table.pack(1, 2, 3)
print(table.concat(t, ", ")) --> 1, 2, 3

参数

values...: Variant

返回

Variant

remove

Variant

从阵列中移除元素,返回移除元素的值。当pos是一个整数,在 1#t 之间,它将向下移动元素 t[pos+1], t[pos+2], ..., t[#t] 并清除元素 1> t[#t)1>。如果

参数

元素已移除的桌子。

pos: number

元素被移除的索引。

返回

Variant

sort

void

将元素 t 的阵列排序在指定的顺序,从 t[1]t[#t]。如果 comp 是给出的,那么它必须是一个函数,它会收到两个元素,并且在第一个元素必须来前第二个元素后才能返回真。

如果 both invalid order function for sortingcomp(a, b) 都返回 comp(b, a) ,则会发生错误。

如果 comp 未被提供,那么默认 Lua 操作器 < 将被使用。

参数

comp: function

用于表中元素比较时使用的可选比较函数。 此函数接受两个元素,如果第一个元素排序在最后一个元素之前,应该返回 true。

默认值:nil

返回

void

unpack

从指定列表中返回元素。默认情况下,i是1,jlist的长度。

请注意,这些相同的功能还提供了全球 unpack() 函数。

参数

list: table

元素列表,要从包裹中取出。

第一个元素的索引。

默认值:1

最后一个元素的索引。

默认值:#list

返回