Lua Academy · Pelajaran

Menambah dan Membuang Item

Gunakan table.insert dan remove.

Pelajaran 2 daripada 413 langkah

Menambah dan Membuang Item ialah pelajaran Lua Academy percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Lua Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Lua Academy merangkumi sejumlah 4 pelajaran.

Mengembangkan Jujukan

Senarai sebenar berubah saiz semasa program berjalan. Lua menyediakan table.insert untuk menambah item pada hujung.

Oleh sebab jujukan bermula pada 1, penambahan selepas dua item berada pada indeks 3.

local list = {"a", "b"}
table.insert(list, "c")
print(list[1], list[2], list[3])

table.insert Menambah pada Hujung

Apabila dipanggil dengan dua argumen, table.insert(t, value) meletakkan value pada kedudukan sejurus selepas indeks terakhir semasa.

Setiap panggilan mengembangkan jujukan sebanyak satu item dan mengekalkan indeks yang bersebelahan.

local q = {}
table.insert(q, "first")
table.insert(q, "second")
print(q[1], q[2])

Menyisip pada Sesuatu Kedudukan

Dengan tiga argumen, table.insert(t, pos, value) menyisip pada indeks pos dan mengalihkan item selepasnya ke atas.

Di sini, kami meletakkan "X" pada kedudukan 2, jadi item kedua yang lama beralih ke kedudukan 3.

local list = {"a", "b", "c"}
table.insert(list, 2, "X")
print(list[1], list[2], list[3], list[4])

Menyisip di Hadapan

Untuk menambah item di hadapan, sisip pada kedudukan 1. Setiap elemen sedia ada beralih satu indeks lebih tinggi.

Cara ini berguna tetapi lebih perlahan untuk senarai besar kerana Lua perlu mengalihkan semua item.

local list = {"b", "c"}
table.insert(list, 1, "a")
print(list[1], list[2], list[3])

Mengalih Keluar Item Terakhir

table.remove(t) dengan satu argumen memadam dan mengembalikan elemen terakhir.

Jujukan mengecil sebanyak satu item dan kekal tanpa jurang.

local list = {"a", "b", "c"}
local gone = table.remove(list)
print("removed:", gone)
print(list[1], list[2], list[3])

Mengalih Keluar pada Sesuatu Kedudukan

table.remove(t, pos) memadam item pada pos dan mengalihkan item selepasnya ke bawah untuk menutup jurang.

Ingat bahawa kedudukan bermula pada 1, jadi pos = 1 mengalih keluar elemen pertama.

local list = {"a", "b", "c"}
local gone = table.remove(list, 1)
print("removed:", gone)
print(list[1], list[2])

remove Mengembalikan Nilai

Kedua-dua bentuk table.remove mengembalikan nilai yang dikeluarkan, jadi Anda boleh menggunakannya serta-merta.

Ini menjadikan jadual bertindak seperti tindanan: masukkan dengan insert dan keluarkan dengan remove.

local stack = {}
table.insert(stack, 10)
table.insert(stack, 20)
local top = table.remove(stack)
print("popped:", top)

Giliran Mudah

Tambah pada hujung dan alih keluar dari hadapan (pos = 1) untuk memodelkan giliran: masuk dahulu, keluar dahulu.

Setiap pengalihan keluar menggerakkan item yang lain ke bawah, jadi item seterusnya menunggu pada indeks 1.

local queue = {}
table.insert(queue, "Ann")
table.insert(queue, "Bob")
print("serving:", table.remove(queue, 1))
print("next:", queue[1])

Elakkan Jurang Manual

Menetapkan elemen kepada nil dengan list[2] = nil boleh meninggalkan jurang di tengah dan merosakkan jujukan.

Gunakan table.remove sebagai pilihan, kerana ia mengalihkan item dan mengekalkan indeks yang berterusan.

local list = {"a", "b", "c"}
table.remove(list, 2)
print(list[1], list[2])

Membina daripada Masukan

Satu corak yang biasa digunakan ialah bermula dengan jadual kosong dan menambah item apabila data diterima.

Di sini, kami mengumpulkan nombor genap ke dalam jujukan baharu menggunakan insert.

local evens = {}
for n = 1, 6 do
  if n % 2 == 0 then
    table.insert(evens, n)
  end
end
print(evens[1], evens[2], evens[3])

Menyisip dan Mengalih Keluar Bersama

Anda boleh menggabungkan operasi ini secara bebas. Di bawah, kami menambah tiga nama, kemudian mengalih keluar nama yang berada di tengah.

Selepas pengalihan keluar, senarai itu mempunyai dua item yang bersebelahan.

local names = {}
table.insert(names, "Al")
table.insert(names, "Bea")
table.insert(names, "Cy")
table.remove(names, 2)
print(names[1], names[2])

Semakan Ringkas

Fikirkan cara pengalihan keluar menggerakkan jujukan.

Rumusan

Anda telah belajar mengembangkan senarai dengan table.insert (menambah pada hujung atau menyisip pada kedudukan yang bermula pada 1) dan mengecilkannya dengan table.remove, yang mengembalikan nilai yang dialih keluar serta menutup jurang.

Elakkan jurang nil yang dibuat secara manual. Seterusnya, Anda akan melakukan lelaran dengan kemas menggunakan ipairs.

Percuma untuk bermula

Pelajari Lua dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
40
Pelajaran
159

Soalan Lazim

Adakah pelajaran “Menambah dan Membuang Item” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Lua Academy, termasuk “Menambah dan Membuang Item”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Lua Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Menambah dan Membuang Item”?

Gunakan table.insert dan remove. Anda berlatih Lua Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Lua Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Lua Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.

Berapa lamakah pelajaran “Menambah dan Membuang Item” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Lua Academy ini?

Ya. Setiap pelajaran Lua Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Tatasusunan sebagai Jadual
  2. Menambah dan Membuang Item
  3. Mengulang dengan ipairs
  4. Panjang dan Pengisihan
← Kembali ke Lua Academy