Menu
Coddy logo textTech

Eleman Ekleme ve Okuma

Coddy'nin Lua Journey'sinin Luau'ya Giriş bölümünün bir parçası — ders 14 / 73.

Lua tablolarını table.insert ve table.remove ile zaten büyütüp küçültüyorsunuz — her ikisi de tür belirtilmiş dizilerde tamamen aynı şekilde çalışır. Aradaki fark, Luau'nun artık ne eklediğinizi kontrol etmesidir: bir {number} dizisine bir string eklemek, çalışma zamanında kafası karışmış bir oyuncu tarafından keşfedilmek yerine siz yazarken fark edilir.

local queue: {string} = {"save", "load"}
table.insert(queue, "quit")      -- sona ekle
table.insert(queue, 1, "help")   -- 1. konuma ekle, geri kalanı kaydırarak
local last = table.remove(queue) -- son elemanı kaldırır VE döndürür

table.remove(t) son elemanı çıkarır ve size geri döndürür; table.remove(t, 1) ise ilk elemanı çıkarır ve diğer her şeyi aşağı doğru kaydırır. Dizi {string} olarak türlendirildiği için Luau, dönen değerin bir string olduğunu bilir.

Okuma işlemi düz Lua kadar esnektir: hiçbir şey içermeyen bir indeks — queue[0], queue[-1] veya #queue değerini aşan herhangi bir şey — sessizce nil olarak değerlendirilir. Hata verilmez, bu nedenle varlığından emin olmadığınız bir değeri kullanmadan önce nil kontrolü yapın.

Alet çantanız için bir araç daha: table.freeze(t) bir tabloyu çalışma zamanında salt okunur hale getirir — daha sonra onu değiştirme yönündeki her türlü girişim bir hata fırlatır. Bu, oluşturulduktan sonra asla değişmemesi gereken sabit veriler (yapılandırma, sabit seviye listeleri) için Luau'nun sunduğu çözümdür.

challenge icon

Görev

Kolay

"save" ve "load" değerleri ile başlatılmış bir queue: {string} tipli dizisi oluşturun. Ardından:

  1. table.insert ile "quit" değerini append edin
  2. position 1 konumuna "help" değerini insert edin
  3. dönen değeri saklayarak table.remove ile last command değerini remove edin

Son olarak, her biri ayrı bir satırda olacak şekilde şunları print edin:

  1. removed olan command
  2. kaç command kaldığını
  3. queue içindeki first command değerini
  4. queue[10] — hiçbir şey tutmayan bir slot

Kendin dene

-- Kodu buraya yaz
-- 1) kuyruk tanımla: {string} "save" ve "load" ile
-- 2) "quit" ekle, 1. konuma "help" ekle
-- 3) son komutu kaldır, sonra dört değeri yazdır
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Luau'ya Giriş bölümündeki tüm dersler