table

แสดงที่เลิกใช้งานแล้ว

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

ไลบรารีนี้ให้ฟังก์ชันทั่วไปสำหรับการจัดการตาราง/เวกเตอร์เพื่อให้ทุกฟังก์ชันภายในตัวแปร global 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

    ลบองค์ประกอบที่ระบุจากคอลเลกชัน เลื่อนองค์ประกอบที่ต่อมาลงเพื่อกรอกช่องว่างถ้าเป็นไปได้

  • 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หากฉันมากกว่า j จะคืนสตริงว่างเปล่า

พารามิเตอร์

ตารางที่จะถูกแปลงเป็นสตริง

sep: string

สตริงที่จะถูกรวมกันระหว่างแต่ละบันทึกในตาราง

ดัชนีเริ่มต้นของการรวมตาราง

ค่าเริ่มต้น: 1

ดัชนีสิ้นสุดของการรวมตาราง

ส่งค่ากลับ

create

สร้างตารางที่มีส่วนของอาร์เรย์ที่ได้รับการจัดสรรให้กับองค์ประกอบที่กำหนด number โดยมีตัวเลือกที่เติมด้วยองค์ประกอบที่กำหนด value


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

หากคุณกําลังใส่ลงในตารางขนาดใหญ่ที่คล้ายกับและแน่ใจว่ามีขีดจํากัดสูงสุดที่เหมาะสมสําหรับจํานวนองค์ประกอบ แนะนําให้ใช้ฟังก์ชันนี้เพื่อเริ่มต้นตารางสิ่งนี้ช่วยให้ส่วนของความทรงจำของตารางมีขนาดเพียงพอ เนื่องจากการปรับขนาดอาจมีราคาแพงสำหรับปริมาณน้อย มักไม่สามารถสังเกตได้

พารามิเตอร์

count: number
value: Variant

ส่งค่ากลับ

find

Variant

ภายในตารางคล้ายกับที่กำหนด 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

ลบออกจากแอร์ราย์ t องค์ประกอบที่ตำแหน่ง pos และส่งคืนค่าขององค์ประกอบที่ถูกลบออกเมื่อ pos เป็นจํานวนเต็มระหว่าง 1 และ #t มันจะเลื่อนองค์ประกอบลง t[pos+1], t[pos+2], ..., t[#t] และลบองค์ประกอบ t[#t]หากพารามิเตอร์ pos ไม่ได้รับการจัดเตรียม pos จะเริ่มต้นด้วยความยาวของตารางที่ลบองค์ประกอบสุดท้าย

พารามิเตอร์

ตารางที่มีองค์ประกอบถูกลบ

pos: number

ดัชนีขององค์ประกอบที่ถูกลบ

ส่งค่ากลับ

Variant

sort

()

จัดเรียงองค์ประกอบของแอร์รายในลำดับที่กำหนด, จาก t[1] ถึง t[#t] .หาก comp ได้รับแล้ว จะต้องเป็นฟังก์ชันที่ได้รับสององค์ประกอบและส่งคืนความจริงเมื่อองค์ประกอบแรกต้องมาก่อนองค์ประกอบที่สองในลำดับสุดท้าย

ข้อผิดพลาด invalid order function for sorting ถูกโยนหากทั้ง comp(a, b) และ comp(b, a) ส่งคืน true

หากไม่มี comp ก็จะใช้ตัวประกอบ Luau มาตรฐาน < แทน

พารามิเตอร์

comp: function

ฟังก์ชันการเปรียบเทียบทางเลือกที่จะใช้เมื่อเปรียบเทียบองค์ประกอบในตารางฟังก์ชันนี้ได้รับสององค์ประกอบและควรส่งคืนค่าเป็นจริงหากองค์ประกอบแรกควรจะจัดเรียงก่อนองค์ประกอบที่สองในลำดับสุดท้าย

ค่าเริ่มต้น: nil

ส่งค่ากลับ

()

unpack

คืนองค์ประกอบจากรายการที่กำหนด โดยค่าเริ่มต้น i คือ 1 และ j คือความยาวของ list

โปรดทราบว่าฟังก์ชันเดียวกันนี้ยังมีให้โดยฟังก์ชัน global unpack() ด้วย

พารามิเตอร์

list: table

รายการขององค์ประกอบที่จะถูกแยกออก

ดัชนีขององค์ประกอบแรกที่จะแยกออก

ค่าเริ่มต้น: 1

ดัชนีขององค์ประกอบล่าสุดที่จะแยกออก

ค่าเริ่มต้น: #list

ส่งค่ากลับ