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üyorsun: her ikisi de tür belirtilmiş dizilerde tamamen aynı şekilde çalışır. Fark şu: Luau artık eklediğin şeyi kontrol ediyor: bir dizeyi {number} dizisine eklemek, çalışma zamanında kafası karışmış bir oyuncu tarafından fark edilmek yerine, sen yazarken işaretleniyor.
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ürtable.remove(t) son öğeyi çıkarır ve sana geri verir; table.remove(t, 1) ise ilk öğeyi kaldırır ve diğer her şeyi aşağı kaydırır. Dizi {string} olarak türlendirildiği için Luau, döndürülen değerin bir dize olduğunu bilir.
Okuma da düz Lua'daki kadar esnektir: hiçbir şey içermeyen bir dizin, queue[0], queue[-1] veya #queue değerinin ötesindeki herhangi bir şey sessizce nil olarak değerlendirilir. Hata oluşturulmaz; bu nedenle var olduğundan emin olmadığın bir değeri kullanmadan önce nil kontrolü yap.
Alet çantana ekleyebileceğin bir araç daha: table.freeze(t) bir tabloyu çalışma zamanında salt okunur hâle getirir: daha sonra onu değiştirmeye yönelik herhangi bir girişim hata oluşturur. Bu, oluşturulduktan sonra asla değişmemesi gereken sabit veriler (yapılandırma, sabit bölüm listeleri) için Luau'nun çözümüdür.
Görev
Kolay"save" ve "load" ile başlatılmış, türü belirtilmiş bir dizi queue: {string} oluştur. Ardından:
table.insertile"<code>quit" ekle- 1. konuma
"<code>help" ekle table.removeile son komutu kaldır ve döndürülen değeri sakla
Son olarak, her birini kendi satırında yazdır:
- kaldırılan komutu
- kaç komut kaldığını
- kuyruktaki ilk komutu
queue[10]: hiçbir şey içermeyen bir yuva
Kendin dene
-- Kodu buraya yaz
-- 1) kuyruk tanımla: {string} "save" ve "load" ile
-- 2) talimatlardaki tam metni sona ekle, talimatlardaki tam metni 1. konuma ekle
-- 3) son komutu kaldır, sonra dört değeri yazdır
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
1Luau ile Başlarken
Luau Nedir?Neden Luau Kullanılmalı?İlk Luau KodunuzTip Denetimi ve Hata ModlarıÖzet: Luau'ya Giriş4Fonksiyonlarla Çalışmak
Parametreleri ve Geri Dönüş Değerlerini TiplendirmeAnonim Fonksiyonları TiplendirmeHiçbir Şey Döndürmeyen Fonksiyonlarİsteğe Bağlı ParametrelerVarsayılan Parametre DeğerleriDeğişken Sayıda Parametre Alan Fonksiyonlar (Variadic)Fonksiyon Tiplerini TanımlamaÖzet: Tiplendirilmiş Fonksiyonlar2Temel Tipler
Temel Tipler: num, str, bool'any' Tipi: Kaçış Yolu'unknown' TipiNil ve İsteğe Bağlı (Optional) TiplerUygulamada Tip ÇıkarımıAçık Tip BelirteçleriÖzet: Temel Tipler Pratiği5Diğer Adlar (Aliases), Birleşimler, Kesişimler
İlkel Tipler için Tip Diğer Adları (Type Aliases)Birleşim Tipleri (Union Types)Birleşim Tipleri ile ÇalışmakLiteral (Sabit) TiplerKesişim Tipleri (Intersection Types)Tip Diğer Adlarını BirleştirmeÖzet: Gelişmiş Tip Kombinasyonları3Tipli Tablolar: Diziler ve Map'ler
Tipli DizilerEleman Ekleme ve OkumaMap Tipi Nedir?Map Bildirimi ve Map'lere ErişimTablolar Üzerinde YinelemeKarma Biçimli TablolarÇok Boyutlu Tipli Dizilertable.unpack ve VarargsÖzet: Diziler ve Map'lerKendi başına pratik yap: Online Lua derleyicisi