Menu
CoddyTech

Menentukan Tipe Fungsi Anonim

Termasuk bagian Pengantar Luau dalam perjalanan Lua di Coddy. Pelajaran 23 dari 73.

Di Lua, fungsi adalah nilai: kamu telah menyimpannya dalam variabel dan meneruskannya: local f = function(x) return x * 2 end. Fungsi anonim (ekspresi fungsi) menggunakan anotasi tipe sama seperti fungsi bernama:

local double = function(x: number): number
    return x * 2
end

local shout = function(text: string): string
    return string.upper(text) .. "!"
end

Parameter mendapatkan name: type di dalam tanda kurung, dan tipe nilai yang dikembalikan mengikuti tanda kurung penutup: satu-satunya perbedaan dari fungsi bernama adalah kata kunci function tidak memiliki nama dan seluruh ekspresi ditetapkan ke sebuah variabel.

Jika kamu pernah mempelajari JavaScript atau TypeScript, perlu diketahui bahwa Luau tidak memiliki fungsi panah. Tidak ada sintaks =>. Setiap ekspresi fungsi ditulis dengan function ... end, baik panjang maupun pendek.

Setelah ditetapkan, kamu memanggilnya melalui variabel seperti fungsi lainnya: double(21) mengembalikan 42, dan pemeriksa memverifikasi setiap pemanggilan berdasarkan anotasi yang kamu tulis.

challenge icon

Tantangan

Mudah

Tulis ulang fungsi bernama ini sebagai fungsi anonim yang disimpan dalam variabel lokal, dengan mempertahankan semua anotasi tipe:

function subtract(a: number, b: number): number
    return a - b
end

Jadi, buat local subtract = function(...) ... end dengan tipe parameter dan nilai kembalian yang sama.

Lalu buat dua fungsi anonim bertipe lainnya:

  • createMessage: menerima text: string, mengembalikan string "Message: [text]" (tipe kembalian string)
  • isPositive: menerima num: number, mengembalikan true jika angka tersebut lebih besar dari 0, jika tidak, mengembalikan false (tipe kembalian boolean)

Panggil dan cetak masing-masing pada barisnya sendiri:

  1. subtract(10, 3)
  2. createMessage("Hello World")
  3. isPositive(-5)
  4. isPositive(8)

Coba sendiri

-- Tulis kodemu di sini
-- local subtract = function(a: number, b: number): number ... end
-- local createMessage = function(text: string): string ... end
-- local isPositive = function(num: number): boolean ... end
-- lalu tampilkan keempat hasilnya
quiz iconUji dirimu

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

Semua pelajaran di Pengantar Luau

Latihan sendiri: Compiler Luau online