Menu
CoddyTech

Fungsi sebagai Nilai Kelas Satu

Termasuk bagian Logika dan Alur dalam perjalanan Lua di Coddy. Pelajaran 12 dari 54.

Dalam Lua, fungsi bukan sekadar blok kode yang menjalankan tugas. Fungsi adalah nilai yang dapat diperlakukan seperti tipe data lainnya. Artinya, kamu dapat menggunakan fungsi dengan cara yang sama seperti menggunakan angka, string, atau tabel.

Kamu dapat menyimpan fungsi dalam variabel:

local greet = function()
    print("Hello!")
end

greet()  -- output: Hello!

Di sini, fungsi ditetapkan ke variabel greet, dan kamu bisa memanggilnya seperti fungsi biasa. Ini membuka banyak kemungkinan menarik untuk menyusun kodemu.

Fungsi juga dapat diteruskan sebagai argumen ke fungsi lain. Ini sangat berguna ketika kamu ingin satu fungsi menggunakan perilaku yang ditentukan dalam fungsi lain:

function executeAction(action)
    action()
end

local sayHello = function()
    print("Hello from a function!")
end

executeAction(sayHello)  -- output: Hello from a function!

Dalam contoh ini, executeAction menerima fungsi sebagai parameter dan memanggilnya. Fungsi sayHello diteruskan seperti kamu meneruskan angka atau string.

Fungsi bahkan dapat mengembalikan fungsi lain. Ini memungkinkan kamu membuat fungsi secara dinamis berdasarkan kondisi atau parameter tertentu:

function createMultiplier(factor)
    return function(number)
        return number * factor
    end
end

local double = createMultiplier(2)
print(double(5))  -- output: 10
challenge icon

Tantangan

Mudah

Tulis fungsi applyOperation yang menerima a, b, dan operation, lalu mengembalikan hasil penerapan fungsi operasi pada kedua angka tersebut.

Parameter operation adalah tabel yang berisi fungsi yang akan dipanggil dengan a dan b sebagai argumen.

Logika:

  • Ambil fungsi dari tabel operation menggunakan kunci "func"
  • Panggil fungsi tersebut dengan a dan b sebagai argumen
  • Kembalikan hasilnya

Parameter:

  • a (angka): Angka pertama
  • b (angka): Angka kedua
  • operation (tabel): Tabel yang berisi fungsi yang disimpan dengan kunci "func"

Nilai yang dikembalikan: Hasil pemanggilan fungsi operasi dengan a dan b (angka)

Coba sendiri

function applyOperation(a, b, operation)
    -- Tulis kodemu di sini
end
quiz iconUji dirimu

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

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler Lua online