Menu
Coddy logo textTech

Kapsam ve Bloklar

Coddy'nin Lua Journey'sinin Fundamentals 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 etmenize olanak tanıyarak değişken kapsamı üzerinde size hassas bir kontrol sağlar.

Bir do...end bloğu ile nasıl yeni bir kapsam oluşturabileceğiniz aşağıda gösterilmiştir:

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ç bloklardan erişilebilir.

challenge icon

Görev

Kolay

Aynı isme sahip yerel değişkenlerin farklı kapsamlarda 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.

Kopya kağıdı

Değişken kapsamını kontrol etmek için do...end bloklarını kullanarak kodunuzun herhangi bir yerinde yeni kapsamlar oluşturun:

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!

Farklı bloklardaki aynı isme sahip yerel değişkenler tamamen ayrı kalır:

local name = "Alice"

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

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

Bir blok içinde bildirilen değişkenler dış kapsama çıkamazken, dış kapsamlardaki değişkenlere iç bloklardan erişilebilir.

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.

Fundamentals bölümündeki tüm dersler