Lua - Penjurut: Panduan untuk Pemula
Hai, bakat pemrogram Lua masa depan! Hari ini, kita akan memulakan sebuah perjalanan menarik ke dunia penjurut Lua. Jangan khawatir jika anda baru dalam bidang programming - saya akan menjadi panduannya yang ramah, dan kita akan mengambil ini secara berperingkat. Pada akhir panduan ini, anda akan menjadi penjurut seperti seorang pro!
Apa Itu Penjurut?
Sebelum kita mendalam, mari kita memahami apa penjurut itu. Bayangkan anda mempunyai sehelai keranjang apple, dan anda mahu mengesan setiap apple satu per satu. Penjurut adalah seperti tangan ajaib yang membantu anda mengambil setiap apple bergilir, tanpa anda perlu bimbang tentang berapa banyak apple di dalam keranjang atau bagaimana mereka diatur.
Dalam istilah programming, penjurut adalah objek yang membolehkan kita melintasi semua unsur di dalam satu koleksi (seperti array atau jadual di Lua) tanpa perlu mengetahui struktur asas koleksi itu.
Sekarang, mari kita jelajahi jenis-jenis penjurut berbeza di Lua!
Penjurut Generik
Loopternakan generik adalah cara paling biasa untuk menggunakan penjurut di Lua. Ia mudah, elegan, dan kuat. Mari kita mulakan dengan contoh asas:
local buah = {"apple", "banana", "orange", "grape"}
for i, buah_buah in ipairs(buah) do
print(i .. ": " .. buah_buah)
end
Jika anda jalankan kod ini, anda akan melihat:
1: apple
2: banana
3: orange
4: grape
Mari kita pecahkan ini:
- Kita buat satu jadual (array) buah.
- Kita gunakan loop
for
denganipairs
, yang merupakan fungsi penjurut binaan. -
i
adalah indeks, danbuah_buah
adalah nilai di indeks itu. - Loop secara automatik berhenti apabila ia mencapai akhir jadual.
Bukan itu menarik? Seperti tangan ajaib kita mengambil setiap buah dan memberitahu kita posisinya di dalam keranjang!
Contoh Lain: Melintasi Dictionary
Mari cuba sesuatu yang sedikit berbeza:
local person = {name = "Alice", age = 30, job = "Developer"}
for key, value in pairs(person) do
print(key .. " = " .. value)
end
Ini akan outputkan:
name = Alice
age = 30
job = Developer
Di sini, kita menggunakan pairs
bukan ipairs
. pairs
adalah hebat untuk jadual yang bukan hanya senarai mudah, seperti jadual person
kita.
Penjurut Tak Ada Keadaan
Sekarang, mari kita naik taraf sedikit. Penjurut tanpa keadaan adalah fungsi yang tidak menyimpan mana-mana keadaan antara panggilan. Mereka mudah dan efektif. Ini adalah contoh:
function kuadrat(max, current)
current = current or 0
if current >= max then
return nil
end
return current + 1, (current + 1)^2
end
for i, kuadrat_buah in square, 5 do
print(i .. " kuadrat adalah " .. kuadrat_buah)
end
Ini akan outputkan:
1 kuadrat adalah 1
2 kuadrat adalah 4
3 kuadrat adalah 9
4 kuadrat adalah 16
5 kuadrat adalah 25
Mari kita pecahkan ini:
- Kita tentukan fungsi
square
yang mengambil nilaimax
dancurrent
. - Fungsi ini mengembalikan nombor berikutnya dan kuadratnya, atau
nil
apabila kita selesai. - Dalam loop
for
, kita gunakan fungsi ini secara langsung sebagai penjurut.
Seperti memiliki kalkulator yang memberikan kita nombor kuadrat berikutnya setiap kali kita tekan tombol!
Penjurut Ada Keadaan
Akhirnya, mari kita bicarakan penjurut ada keadaan. Mereka lebih kompleks tetapi juga lebih kuat. Mereka mengingat keadaan mereka antara panggilan. Ini adalah contoh:
function fibonacci(n)
local count = 0
local a, b = 0, 1
return function()
if count < n then
count = count + 1
a, b = b, a + b
return count, a
end
end
end
for i, fib in fibonacci(10) do
print("Nombor Fibonacci ke-" .. i .. " adalah " .. fib)
end
Ini akan outputkan 10 nombor Fibonacci pertama:
Nombor Fibonacci ke-1 adalah 1
Nombor Fibonacci ke-2 adalah 1
Nombor Fibonacci ke-3 adalah 2
Nombor Fibonacci ke-4 adalah 3
Nombor Fibonacci ke-5 adalah 5
Nombor Fibonacci ke-6 adalah 8
Nombor Fibonacci ke-7 adalah 13
Nombor Fibonacci ke-8 adalah 21
Nombor Fibonacci ke-9 adalah 34
Nombor Fibonacci ke-10 adalah 55
Penjurut ini seperti kecil kilang nombor Fibonacci. Setiap kali kita memanggilnya, ia mengingat di mana ia terakhir berhenti dan memberikan kita nombor berikutnya dalam urutan.
Kesimpulan
Dan begitu kita mendapatnya! Kita telah menjelajahi dunia penjurut Lua, dari loop generik mudah ke penjurut ada keadaan yang kompleks. Ingat, latihan membuat sempurna. Cobalah untuk membuat penjurut anda sendiri untuk urutan atau struktur data yang berbeza.
Ini adalah tabel rujukan cepat bagi fungsi penjurut yang kita gunakan:
Fungsi | Keterangan | Gunakan Untuk |
---|---|---|
ipairs() | Melintasi jadual seperti array | Untuk senarai bernombor |
pairs() | Melintasi semua unsur jadual | Untuk dictionary atau jadual campuran |
Fungsi Custom | Boleh tanpa keadaan atau ada keadaan | Untuk urutan khas atau iterasi kompleks |
Selamat coding, dan moga iterasimu sentiasa subur!
Credits: Image by storyset