Kapsam ve Bloklar
Coddy'nin Lua Journey'sinin Temeller bölümünün bir parçası. Ders 86 / 90.
Lua'da, do...end bloklarını kullanarak kodunuzun herhangi bir yerinde yeni kapsamlar oluşturabilirsiniz. Bu bloklar, yerel değişkenlerinize tam olarak nereden erişilebileceğini belirlemenizi sağlayarak değişken kapsamı üzerinde hassas bir kontrol sunar.
Yeni bir kapsamı do...end bloğuyla şöyle oluşturabilirsin:
local outerVar = "I'm outside"
do
local innerVar = "I'm inside"
print(outerVar) -- Bu çalışır
print(innerVar) -- Bu da çalışır
end
print(outerVar) -- Bu çalışır
print(innerVar) -- nil yazdırır: innerVar yalnızca blok içinde tanımlıdırKapsamın güçlü yanı, farklı bloklarda aynı ada sahip yerel değişkenlere sahip olabilmeniz ve bu değişkenlerin tamamen ayrı kalmasıdır:
local name = "Alice"
do
local name = "Bob" -- Farklı bir değişken!
print(name) -- "Bob" yazdırır
end
print(name) -- "Alice" yazdırırHer do...end bloğu, yerel değişkenler için kendi yalıtılmış ortamını oluşturur. Bir blok içinde tanımlanan değişkenler dış kapsama çıkamazken, dış kapsamlardaki değişkenlere iç blokların içinden erişilebilir.
Görev
KolayFarklı kapsamlarda aynı ada sahip yerel değişkenlerin birbirinden tamamen ayrı kaldığını göstermek için iç içe do...end blokları oluştur.
Önce, dış kapsamda değeri 10 olan playerLevel adlı bir yerel değişken oluştur ve onu yazdır.
Ardından bir do...end bloğu oluştur ve içinde şunları yap:
- Değeri
25olan, yineplayerLeveladlı yeni bir yerel değişken tanımla - Bu iç
playerLeveldeğişkenini yazdır
İç blok sona erdikten sonra, değişmeden kaldığını göstermek için dış kapsamdaki playerLevel değişkenini tekrar yazdır.
Bu, farklı kapsamlarda aynı ada sahip yerel değişkenlerin tamamen bağımsız olduğunu gösterir; içteki değişken dıştakini etkilemez.
Kendin dene
-- TODO: Kodunuzu buraya yazınBu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Temeller 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 Özellikleri14Değişken Kapsamı
Global DeğişkenlerYerel DeğişkenlerNeden Yerel Değişken Kullanılır?Kapsam ve BloklarÖzet - Kapsam Bulmacası3Operatö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ıKendi başına pratik yap: Online Lua derleyicisi