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 bisa 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)  -- Ini akan menyebabkan error!

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

local name = "Alice"

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

print(name)  -- Mencetak "Alice"

Setiap blok do...end membuat lingkungan terisolasi sendiri untuk variabel lokal. Variabel yang dideklarasikan di dalam blok tidak dapat keluar ke cakupan luar, sedangkan variabel dari cakupan 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 cakupan yang berbeda.

Pertama, buat variabel lokal bernama playerLevel dengan nilai 10 dalam cakupan 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 bagian dalam ini

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

Ini menunjukkan bahwa variabel lokal dengan nama yang sama dalam cakupan berbeda sepenuhnya terpisah. Variabel bagian dalam tidak memengaruhi variabel bagian 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