Menu
CoddyTech

Fungsi Identitas Generic

Termasuk bagian Pengantar Luau dalam perjalanan Lua di Coddy. Pelajaran 62 dari 80.

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 yang 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 menghubungkan keduanya. Panggil identity("hello"), lalu pemeriksa tipe menentukan T = string untuk pemanggilan itu, sehingga hasilnya berupa string. Panggil identity(42), lalu T = number, sehingga hasilnya berupa number. Satu isi fungsi, semua tipe, tidak ada yang hilang.

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

challenge icon

Tantangan

Mudah

Tulis satu fungsi yang mengembalikan nilai apa pun dengan tipe yang tetap utuh.

  1. Tulis local function identity<T>(value: T): T yang mengembalikan value.
  2. Deklarasikan local luckyNumber: number = identity(7) dan local greeting: string = identity("Hello, Luau!").
  3. Cetak luckyNumber, lalu greeting.

Tekan Jalankan Kode: output menampilkan 7 dan Hello, Luau!.

Coba sendiri

-- 1) identity<T>(value: T): T
-- 2) luckyNumber dan greeting dari pemanggilan identity
-- 3) cetak keduanya

Semua pelajaran di Pengantar Luau

Latihan sendiri: Compiler Luau online