table.concat และ table.move
รวมอาร์เรย์และคัดลอกส่วนของตารางอย่างมีประสิทธิภาพด้วยฟังก์ชันในตัว
table.concat และ table.move เป็นบทเรียน Lua Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Lua Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Lua Academy มีบทเรียนทั้งหมด 4 บทเรียน
พื้นฐาน table.concat
table.concat(t, sep, i, j) รวมองค์ประกอบของอาร์เรย์เป็นสตริง โดย sep มีค่าเริ่มต้นเป็น ""
การรวมแบบง่าย
รวมอาร์เรย์สตริงโดยใช้ตัวคั่น
local fruits = {"apple", "banana", "cherry"}
print(table.concat(fruits, ", ")) -- apple, banana, cherryการรวมบางส่วนด้วย i และ j
ระบุดัชนีเริ่มต้นและสิ้นสุดเพื่อรวมช่วงย่อยของอาร์เรย์
local t = {"a", "b", "c", "d", "e"}
print(table.concat(t, "-", 2, 4)) -- b-c-dตัวเลขใน table.concat
องค์ประกอบต้องเป็นสตริงหรือตัวเลขเท่านั้น ชนิดอื่นจะทำให้เกิดข้อผิดพลาด ให้แปลงด้วย tostring ก่อน
local nums = {1, 2, 3}
print(table.concat(nums, " + ")) -- 1 + 2 + 3แนะนำ table.move
table.move(a1, f, e, t, a2) คัดลอกองค์ประกอบจากตาราง a1 (ดัชนี f..e) ไปยังตาราง a2 โดยเริ่มที่ดัชนี t
การคัดลอกช่วงย่อย
คัดลอกองค์ประกอบตั้งแต่ 2 ถึง 4 ของตารางหนึ่งไปยังอีกตารางหนึ่ง
local src = {10, 20, 30, 40, 50}
local dst = {}
table.move(src, 2, 4, 1, dst)
print(table.concat(dst, ", ")) -- 20, 30, 40การเลื่อนในตำแหน่งเดิม
ใช้ table.move โดยกำหนดแหล่งที่มาและปลายทางเป็นตารางเดียวกัน เพื่อเลื่อนองค์ประกอบภายในตาราง
local t = {1, 2, 3, 4, 5}
table.move(t, 2, 5, 1) -- shift left by 1
t[5] = nilการต่อท้ายช่วงย่อย
ต่อท้ายช่วงย่อยของตารางหนึ่งเข้ากับท้ายอีกตารางอย่างมีประสิทธิภาพ
local base = {"x", "y"}
local extra = {"a", "b", "c"}
table.move(extra, 1, #extra, #base + 1, base)
print(table.concat(base, ", "))การโคลนตารางด้วย table.move
สร้างโคลนแบบตื้นได้โดยย้ายทั้งตารางไปยังตารางใหม่ที่ว่างอยู่
local original = {1, 2, 3}
local clone = {}
table.move(original, 1, #original, 1, clone)ประโยชน์ด้านประสิทธิภาพ
table.move ทำงานด้วยภาษา C และเร็วกว่าการวนซ้ำด้วย Lua เองสำหรับช่วงขนาดใหญ่ เพราะหลีกเลี่ยงต้นทุนของตัวแปลภาษาต่อองค์ประกอบ
table.concat กับ string.format
ใช้ table.concat เพื่อรวมอาร์เรย์ และใช้ string.format เพื่อจัดรูปแบบค่าแต่ละค่าที่มีโครงสร้าง
คำถามเกี่ยวกับ table.move
table.move(src, 2, 4, 1, dst) ทำอะไร
ทบทวน: concat และ move
table.concat รวมองค์ประกอบของอาร์เรย์เป็นสตริง ส่วน table.move คัดลอกช่วงย่อยของตารางด้วยภาษา C อย่างมีประสิทธิภาพ ทั้งสองอย่างจำเป็นต่อการจัดการตารางประสิทธิภาพสูง
คำถามที่พบบ่อย
บทเรียน “table.concat และ table.move” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “table.concat และ table.move” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Lua Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Lua Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “table.concat และ table.move”
รวมอาร์เรย์และคัดลอกส่วนของตารางอย่างมีประสิทธิภาพด้วยฟังก์ชันในตัว คุณปฏิบัติ Lua Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Lua Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Lua Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “table.concat และ table.move” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Lua Academy นี้ได้ไหม
ได้ บทเรียน Lua Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- table.sort พร้อมตัวเปรียบเทียบ
- table.concat และ table.move
- การคัดลอกแบบลึกและแบบตื้น
- การแปลงตาราง: map, filter, reduce