Menu
CoddyTech

Fungsi Identitas Generic

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

Berikut fungsi identitas yang benar, sebagai fungsi generik:

local function identity<T>(value: T): T
    return value
end

<T> setelah nama fungsi menyatakan parameter tipe: placeholder yang mewakili "suatu tipe, ditentukan pada setiap pemanggilan". Di dalam signature, kamu menggunakan T persis seperti tipe sungguhan: parameternya bertipe T, dan fungsi mengembalikan T.

Menggunakan T yang sama untuk input dan output adalah inti triknya. Ini mengaitkan keduanya. Panggil identity("hello"), lalu checker menentukan T = string untuk pemanggilan itu, sehingga hasilnya berupa string. Panggil identity(42), dan T = number, sehingga hasilnya berupa number. Satu isi fungsi, semua tipe, tidak ada yang hilang.

T hanyalah nama konvensional (singkatan dari "Type"): <Item> atau <Value> juga bisa digunakan. Dan seperti biasa di Luau, tanda kurung sudut hanya ada untuk checker: saat runtime, ini adalah fungsi Lua biasa function identity(value) return value end.

challenge icon

Tantangan

Mudah

Buat fungsi generik bernama identity yang:

  • mendeklarasikan parameter tipe T
  • menerima satu parameter bernama value dengan tipe T
  • mengembalikan nilai tersebut, dengan tipe kembalian T

Lalu buat variabel-variabel bertipe berikut menggunakan fungsi tersebut:

  • luckyNumber dengan tipe number: panggil identity dengan 7
  • greeting dengan tipe string: panggil identity dengan "Hello, Luau!"
  • isReady dengan tipe boolean: panggil identity dengan true

Cetak hal-hal berikut, masing-masing pada barisnya sendiri:

  1. luckyNumber
  2. greeting
  3. isReady
  4. hasil pemanggilan identity dengan "<code>generics" langsung di dalam print
  5. hasil pemanggilan identity dengan 99 langsung di dalam print

Coba sendiri

-- Tulis kodemu di sini
-- 1) definisikan identity<T>(value: T): T
-- 2) buat luckyNumber, greeting, dan isReady dengan memanggil identity
-- 3) cetak ketiganya, lalu cetak identity(teks persis dari instruksi) dan identity(99)
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