Menu
CoddyTech

Parameter Opsional

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

Di Lua biasa, kamu bisa selalu menghilangkan argumen: argumen yang tidak diberikan diam-diam menjadi nil, dan lupa menangani hal itu adalah sumber bug yang umum. Luau membuat kemungkinan ini menjadi eksplisit: tambahkan ? ke tipe parameter untuk menandainya sebagai opsional.

function greet(name: string, title: string?): string
    if title then
        return `{title} {name}`
    end
    return `Hello, {name}`
end

print(greet("Ada"))          -- Hello, Ada
print(greet("Ada", "Dr."))   -- Dr. Ada

string? berarti "string atau nil". Pemanggil bisa memberikan string atau melewatkan argumen sepenuhnya; parameter tanpa ? wajib diberikan, dan pemeriksa akan menandai pemanggilan yang menghilangkannya.

Di dalam fungsi, parameter opsional bisa bernilai nil, jadi periksa nilainya sebelum digunakan: if title then ... end adalah pola yang umum. Lewati pemeriksaan ini lalu gabungkan nil ke dalam string, dan kamu akan mendapatkan error saat runtime yang sama seperti yang selalu diberikan Lua; pemeriksa tipe akan memperingatkanmu lebih dulu.

challenge icon

Tantangan

Mudah

Tulis fungsi profil yang nama tampilannya opsional.

  1. Tulis local function createUserProfile(username: string, displayName: string?): string.
  2. Kembalikan `Profile: {displayName} (@{username})` jika displayName diberikan, jika tidak, kembalikan `Profile: @{username}`.
  3. Cetak createUserProfile("john_doe", "John Doe") dan createUserProfile("jane_smith").

Tekan tombol Jalankan: output menampilkan Profile: John Doe (@john_doe) dan Profile: @jane_smith.

Coba sendiri

-- 1) createUserProfile(username: string, displayName: string?): string
-- 2) cetak hasilnya dengan dan tanpa nama tampilan

Semua pelajaran di Pengantar Luau

Latihan sendiri: Compiler Luau online