Menu
CoddyTech

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ır

Kapsamı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ır

Her 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.

challenge icon

Görev

Kolay

Farklı 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 25 olan, yine playerLevel adlı yeni bir yerel değişken tanımla
  • Bu iç playerLevel değ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ın
quiz iconKendini test et

Bu 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

Kendi başına pratik yap: Online Lua derleyicisi