Menu
Coddy logo textTech

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 kontrol etmenizi sağlayarak değişken kapsamı üzerinde size hassas bir kontrol sunar.

Bir do...end bloğu ile yeni bir kapsamı şu şekilde oluşturabilirsiniz:

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)  -- Bu bir hataya neden olur!

Kapsamın (scope) güçlü yanı, farklı bloklarda aynı isme sahip yerel değişkenlere sahip olabilmenizdir ve bunlar tamamen ayrı kalırlar:

local name = "Alice"

do
    local name = "Bob"  -- Farklı değişken!
    print(name)  -- "Bob" yazdırır
end

print(name)  -- "Alice" yazdırır

Her bir do...end bloğu, yerel değişkenler için kendi izole ortamını oluşturur. Bir blok içinde tanımlanan değişkenler dış kapsama sızamazken, dış kapsamlardaki değişkenlere iç blokların içinden erişilebilir.

challenge icon

Görev

Kolay

Aynı isme sahip yerel değişkenlerin farklı kapsamlarda (scope) nasıl tamamen ayrı kaldığını göstermek için iç içe geçmiş do...end blokları oluşturun.

İlk olarak, dış kapsamda 10 değerine sahip playerLevel adında yerel bir değişken oluşturun ve bunu yazdırın.

Ardından bir do...end bloğu oluşturun ve içinde şunları yapın:

  • Yine playerLevel adında ve 25 değerine sahip yeni bir yerel değişken tanımlayın
  • Bu içteki playerLevel değişkenini yazdırın

İçteki blok sona erdikten sonra, değişmeden kaldığını göstermek için dıştaki playerLevel değişkenini tekrar yazdırın.

Bu, farklı kapsamlardaki aynı isimli 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