table

顯示已棄用項目

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

這個庫提供一般的表/陣列操作功能,為其所有功能提供全球 table 變量內。table 圖形庫中大多數功能假設表代表一個陣列或一個列表。對於這些功能,表的「長度」意味著長度運算符的結果。

概要

函式

  • clear(table : table):()

    將給定表中的所有鍵設為 nil

  • 返回提供的表淺副本。

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

    返回指定的表元範圍,以字串形式,每個元素由指定的分隔符分開。

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

    返回一個新表,其中包含許多實例指定值。

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

    返回從 needle 開始的第一次發生的 haystack 指數,始於 init

  • 使指定的表只能閱讀。

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

    插入提供的值到陣列的目標位置。

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

    將提供的值添加到陣列的結尾。

  • 如果指定的表被凍結,返回 true ;如果未被凍結,則返回 false

  • 返回提供的表的最大數字鍵或零,如果表沒有數字鍵。

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

    從一個表複製指定的元素範圍到另一個表。

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

    返回包含提供的值的新表。

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

    從 array 中移除指定陣列素,如果可能的話,將減少之後的元素填滿空白位置。

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

    使用提供的比較功能或 < 操作符排序表元素。

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

    返回指定列表中的所有元組素為 tuple 。

函式

clear

()

將給定表內所有鍵的值設為 nil。這會導致 # 操作器返回給指定表的 0 。維持表的阵列部分配置的能力,可以有效地重複使用空間。


local grades = {95, 82, 71, 92, 100, 60}
print(grades[4], #grades) --> 92, 6
table.clear(grades)
print(grades[4], #grades) --> 無,0
-- 如果等級再次填滿相同數量的入口,
-- 不會發生潛在昂貴的數組縮放
-- because the capacity was maintained by table.clear.

此功能不會刪除/摧毀提供給它的表。此功能專為要重複使用的表而設。

參數

table: table

表的鑰匙將被清除的表。

返回

()

clone

返回提供的表淺副本的未凍結副本。

參數

要複製的表。

返回

提供的表的複製。

concat

當給出一個包含所有元素為字串或數字的陣列時,返回字串 t[i] ... sep ... t[i+1] ... sep ... t[j] 。sep 的預設值為空字串,預設值為 i 是 1,預設值為 j 是 #t。如果 i 大於 j,返回空白字串。

參數

將轉換為字串的表。

sep: string

表中每個入口之間會被連接的字串。

表結合的起始索引。

預設值:1

表結合的最後索引。

返回

create

創建一個包含給定 number 個元素的陣列部分的表,可選擇填充給定的 value


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

如果你正在插入大型類似表格的表,並確定數量元素的上限,建議使用此函數來初始化表。這樣可以確保表的陣列部分的記憶足夠大,因為縮放它可能會很貴。對於少量來說,通常不會注意到。

參數

count: number
value: Variant

返回

find

Variant

在給定的 array 類似表 haystack 中,找到值 needle 的第一次出現,從索引 init 或開始如果未提供。如果值未找到,nil將返回。

執行了一個 線性搜索 算法。


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

參數

haystack: table
needle: Variant
init: number

返回

Variant

freeze

這個功能使指定的表變為只讀,有效地「凍結」它在目前狀態下。嘗試修改凍結的表會發生錯誤。

這種凍結效果很淺,這意味著你可以寫入冰凍表中的表。要深凍一個表,在所有下降的表上逐次呼叫此功能。

參數

要被凍結的表。

返回

被凍結的表。

insert

()

插入提供的值到陣列的目標位置。

參數

要附加到的表。

pos: number

值將被插入的位置。

value: Variant

將被附加到表的值。

返回

()

insert

()

將提供的值添加到陣列的結尾。

參數

要附加到的表。

value: Variant

將被附加到表的值。

返回

()

isfrozen

此功能會返回 true 如果指定的表被凍結,和 false 如果它未被凍結。你可以使用 table.freeze() 來凍結表。

參數

要檢查的表。

返回

表是否從 table.freeze() 被凍結。

maxn

返回提供的表的最大數字鍵或零,如果表沒有數字鍵。表中的空格被忽略。

參數

返回

move

src 起複製表中的元素到 src[a] 直到 src[b] 到表 dst 開始於索引 t 。等於指派聲明 dst[t], ..., dst[t + (b - a)] = src[a], ..., src[b]

對於 dst 的預設值是 src 。目的地範圍可能與來源範圍重疊。

返回 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

從 array 中移除位置為 pos 的元素,返回移除元素的值。當 pos 是在 1#t 之間的整數時,它會向下移動元素 t[pos+1], t[pos+2], ..., t[#t] 並刪除元素 t[#t] 。如果 pos 參數未提供,pos 將預設為表的長度,移除最後一個元素。

參數

包含已移除元素的表。

pos: number

正在移除的元素的指數。

返回

Variant

sort

()

排序元素的 array t 在給定的順序,從 t[1]t[#t] 。如果 comp 被提供,則必須是一個接收兩個元素,在最後一個元素必須在第二個之前出現時返回真值的函數。

如果兩個 comp(a, b)comp(b, a) 都返回 true,錯誤將被投擲invalid order function for sorting

如果 comp 未提供,則使用標準 Luau 運作者 < 取代。

參數

comp: function

可選擇的比較功能,用於比較表中的元素。此功能接收兩個元素,並應在最後順序中將第一個元素排序前返回真值,如果第二個元素應在第一個元素之前排序。

預設值:nil

返回

()

unpack

返回指定列表中的元素。默认情況下,i 是 1 和 jlist 的長度。

請注意,這個相同的功能也由全球 unpack() 函數提供。

參數

list: table

要解包的元素清單。

要解包的第一個元素的指數。

預設值:1

要解包的最後一個元素的指數。

預設值:#list

返回