Menambahkan dan Membaca Elemen
Termasuk bagian Pengantar Luau dalam perjalanan Lua di Coddy. Pelajaran 14 dari 73.
Kamu sudah menambah dan mengurangi isi tabel Lua dengan table.insert dan table.remove: keduanya bekerja dengan cara yang sama persis pada array bertipe. Bedanya, sekarang Luau memeriksa apa yang kamu masukkan: memasukkan string ke array {number} akan ditandai saat kamu mengetik, bukan baru diketahui oleh pemain yang kebingungan saat program berjalan.
local queue: {string} = {"save", "load"}
table.insert(queue, "quit") -- tambahkan di akhir
table.insert(queue, 1, "help") -- sisipkan di posisi 1, geser elemen lainnya
local last = table.remove(queue) -- hapus DAN kembalikan elemen terakhirtable.remove(t) mengambil elemen terakhir dan mengembalikannya kepadamu; table.remove(t, 1) menghapus elemen pertama dan menggeser semua elemen lainnya ke bawah. Karena array tersebut bertipe {string}, Luau tahu bahwa nilai yang dikembalikan adalah string.
Membaca nilai sama fleksibelnya seperti di Lua biasa: indeks yang tidak berisi apa pun, queue[0], queue[-1], atau indeks apa pun yang melebihi #queue, akan dievaluasi menjadi nil tanpa pemberitahuan. Tidak ada error yang muncul, jadi periksa apakah nilainya nil sebelum menggunakan nilai yang belum pasti ada.
Satu lagi alat untuk kamu: table.freeze(t) membuat tabel hanya dapat dibaca saat program berjalan: setiap upaya selanjutnya untuk mengubahnya akan memunculkan error. Ini adalah solusi Luau untuk data konstan, seperti konfigurasi atau daftar level tetap, yang tidak boleh berubah setelah dibuat.
Tantangan
MudahBuat array bertipe queue: {string} yang diinisialisasi dengan "save" dan "load". Lalu:
- tambahkan
"<code>quit" dengantable.insert - sisipkan
"<code>help" di posisi 1 - hapus perintah terakhir dengan
table.remove, lalu simpan nilai yang dikembalikan
Terakhir, cetak setiap item pada barisnya sendiri:
- perintah yang dihapus
- jumlah perintah yang tersisa
- perintah pertama dalam antrean
queue[10]: slot yang tidak berisi apa pun
Coba sendiri
-- Tulis kodemu di sini
-- 1) deklarasikan queue: {string} dengan "save" dan "load"
-- 2) tambahkan teks persis dari instruksi ke akhir, sisipkan teks persis dari instruksi pada posisi 1
-- 3) hapus perintah terakhir, lalu cetak keempat nilainya
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Pengantar Luau
1Memulai dengan Luau
Apa Itu Luau?Mengapa Menggunakan Luau?Kode Luau PertamamuPemeriksaan Tipe dan Mode ErrorRangkuman: Pengenalan Luau4Bekerja dengan Fungsi
Menentukan Tipe Parameter dan Nilai KembalianMenentukan Tipe Fungsi AnonimFungsi yang Tidak Mengembalikan NilaiParameter OpsionalNilai Default ParameterFungsi VariadikMendefinisikan Tipe FungsiRangkuman: Fungsi Bertipe2Tipe Inti
Tipe Dasar: num, str, boolTipe 'any': Jalan Keluar DaruratTipe 'unknown'Nil & Tipe OpsionalInferensi Tipe dalam PraktikAnotasi Tipe EksplisitUlasan: Latihan Tipe Inti5Alias, Union, dan Intersection
Alias Tipe untuk Tipe PrimitifTipe UnionMenggunakan Tipe UnionTipe LiteralTipe IntersectionMenggabungkan Alias TipeRekap: Kombinasi Tipe Lanjutan3Tabel Bertipe: array dan Map
array BertipeMenambahkan dan Membaca ElemenApa Itu Tipe Map?Mendeklarasikan dan Mengakses MapMelakukan Iterasi pada TabelTabel dengan Bentuk Campuranarray Bertipe Multidimensitable.unpack dan VarargsRingkasan: array dan MapLatihan sendiri: Compiler Luau online