nil ile Çiftleri Kaldırma
Coddy'nin Lua Journey'sinin Fundamentals bölümünün bir parçası — ders 69 / 90.
Bir anahtara nil atadığınızda, Lua bu anahtar-değer çiftini tablodan etkili bir şekilde kaldırır:
local settings = {
["volume"] = 80,
["difficulty"] = "normal",
["music"] = true
}
-- Zorluk ayarını kaldırın
settings.difficulty = nil
-- Artık zorluk anahtarı tabloda mevcut değilBir anahtar-değer çiftini kaldırmak için nokta notasyonunu veya köşeli parantez notasyonunu kullanabilirsiniz. Hem settings.difficulty = nil hem de settings["difficulty"] = nil tam olarak aynı şekilde çalışır.
Bir anahtara nil atadıktan sonra, o anahtar tablodan tamamen kaybolur. Daha sonra ona erişmeye çalışırsanız, sanki anahtar en başından beri hiç var olmamış gibi sonuç olarak nil alırsınız.
Görev
KolaySözlük tarzı bir tablodan istenmeyen ayarların kaldırılmasını gösteren bir oyun yapılandırma sistemi oluşturun. İlk olarak, şu anahtar-değer çiftlerine sahip gameConfig adında bir tablo oluşturarak başlayın: ["graphics"] anahtarına "high" dizesi, ["sound"] anahtarına 75 sayısı, ["difficulty"] anahtarına "normal" dizesi ve ["debug"] anahtarına true boolean değeri atanmalıdır.
Başlangıç yapılandırma tablosunu oluşturduktan sonra, nokta notasyonunu kullanarak debug ayarına nil atayarak bu ayarı kaldırın. Ardından, tablonun diğer değerleri hala içerdiğini doğrulamak için kalan sound ayarını yazdırın.
Kopya kağıdı
Bir tablodan bir anahtar-değer çiftini kaldırmak için anahtara nil atayın:
local settings = {
["volume"] = 80,
["difficulty"] = "normal",
["music"] = true
}
-- Zorluk ayarını kaldır
settings.difficulty = nilNokta notasyonunu veya köşeli parantez notasyonunu kullanabilirsiniz:
settings.difficulty = nil
settings["difficulty"] = nilnil atadıktan sonra, anahtar tablodan tamamen kaybolur. Ona erişmek nil döndürür.
Kendin dene
-- YAPILACAK: Kodunuzu buraya yazın
-- Gerekli anahtar-değer çiftleriyle gameConfig tablosunu oluşturun
-- Nokta notasyonunu kullanarak debug ayarını kaldırın
-- sound ayarını yazdırınBu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Fundamentals bölümündeki tüm dersler
4Operatörler 2 İlişkisel ve Mantıksal
Eşitlik Operatörleriİlişkisel Operatörler'and' Operatörü'or' Operatörü'not' OperatörüKısa Devre DeğerlendirmesiTruthy ve Falsy DeğerlerÖzet - Basit Mantık10Tablolar Bölüm 1: Liste Stili
Tablo Nedir?Tablo Oluşturmaİndeks ile Elemanlara Erişmeİndeks ile Elemanları DeğiştirmeUzunluk Operatörü '#'table.insert()table.remove()Özet - Parti Üyelerini Yönetme13Proje: Basit İksir Dükkanı
Proje Kurulumuİksir Ekleme2Değişkenler ve Veri Tipleri
Değişken Nedir?SayılarStringlerBooleanlar'nil' Değeritype() Fonksiyonuİsimlendirme KurallarıÖzet - Karakter Profili5Temel Çıktı
Sabitleri YazdırmaDeğişkenleri YazdırmaBirden Fazla Değer YazdırmaMetinleri ve Değişkenleri Birleştirmetostring() FonksiyonuGirdiTip DönüşümüÖzet - Durum RaporuÖzet - 120'ye Kadar8String Manipülasyonu Temelleri
string.len()string.upper & string.lowerstring.sub()string.rep()string.find()Özet - Kullanıcı Adı Biçimlendirme11Tablolar 2: Sözlük Yapısı
Anahtar-Değer ÇiftleriSözlük Yapısında Tablolar OluşturmaErişim - Köşeli Parantez NotasyonuNokta Notasyonu ile ErişimÇift Ekleme ve Düzenlemenil ile Çiftleri KaldırmaÖzet - Öğe Özellikleri3Operatörler 1 Aritmetik ve Birleştirme
Aritmetik OperatörlerMod Alma OperatörüÜs Alma OperatörüString BirleştirmeOperatör ÖnceliğiÖzet - Basit Hesaplamalar6Proje: Karakter İstatistiklerini Görüntüleme
Hoş Geldiniz MesajıKarakter İstatistiklerini Tanımlama9Fonksiyon Temelleri
Fonksiyon TanımlamaFonksiyon ÇağırmaParametreli FonksiyonlarÇoklu Parametreli Fonksiyonlar'return' İfadesiÖzet - Alan Hesaplayıcı