Menu
CoddyTech

Cakupan dan Blok

Termasuk bagian Dasar-Dasar dalam perjalanan Lua di Coddy. Pelajaran 86 dari 90.

Di Lua, kamu bisa membuat scope baru di mana saja dalam kodemu menggunakan blok do...end. Blok ini memungkinkanmu mengatur dengan tepat di mana variabel lokalmu dapat diakses, sehingga kamu memiliki kendali yang tepat atas scope variabel.

Berikut cara membuat scope baru dengan blok do...end:

local outerVar = "I'm outside"

do
    local innerVar = "I'm inside"
    print(outerVar)  -- Ini berhasil
    print(innerVar)  -- Ini juga berhasil
end

print(outerVar)  -- Ini berhasil
print(innerVar)  -- Mencetak nil: innerVar hanya ada di dalam blok

Hal yang hebat dari scope adalah kamu bisa memiliki variabel lokal dengan nama yang sama di blok yang berbeda, dan keduanya tetap sepenuhnya terpisah:

local name = "Alice"

do
    local name = "Bob"  -- Variabel yang berbeda!
    print(name)  -- Menampilkan "Bob"
end

print(name)  -- Menampilkan "Alice"

Setiap blok do...end membuat lingkungan terisolasi sendiri untuk variabel lokal. Variabel yang dideklarasikan di dalam blok tidak dapat keluar ke lingkup luar, sedangkan variabel dari lingkup luar dapat diakses dari dalam blok yang lebih dalam.

challenge icon

Tantangan

Mudah

Buat blok do...end bersarang untuk menunjukkan bahwa variabel lokal dengan nama yang sama tetap sepenuhnya terpisah dalam scope yang berbeda.

Pertama, buat variabel lokal bernama playerLevel dengan nilai 10 di scope luar, lalu cetak nilainya.

Kemudian, buat blok do...end dan di dalamnya:

  • Deklarasikan variabel lokal baru yang juga bernama playerLevel dengan nilai 25
  • Cetak playerLevel yang berada di dalam blok ini

Setelah blok dalam berakhir, cetak kembali playerLevel dari scope luar untuk menunjukkan bahwa nilainya tetap tidak berubah.

Ini menunjukkan bahwa variabel lokal dengan nama yang sama di scope berbeda sepenuhnya terpisah. Variabel di dalam tidak memengaruhi variabel di luar.

Coba sendiri

-- TODO: Tulis kodemu di sini
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Compiler Lua online