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. Adastring? 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.
Tantangan
MudahTulis fungsi profil yang nama tampilannya opsional.
- Tulis
local function createUserProfile(username: string, displayName: string?): string. - Kembalikan
`Profile: {displayName} (@{username})`jikadisplayNamediberikan, jika tidak, kembalikan`Profile: @{username}`. - Cetak
createUserProfile("john_doe", "John Doe")dancreateUserProfile("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
1Memulai dengan Luau
Apa Itu Luau?Mengapa Menggunakan Luau?Kode Luau PertamamuPemeriksaan Tipe dan Mode ErrorRangkuman: Pengenalan Luau4Bekerja dengan Fungsi
Mengetik Parameter dan Nilai KembalianMengetik Fungsi AnonimFungsi Tanpa Nilai KembalianParameter OpsionalNilai Parameter DefaultNilai Default untuk BooleanFungsi VariadikMendefinisikan Tipe FungsiUlasan: Fungsi Bertipe2Tipe Inti
Number, String, dan BooleanTipe 'any': Jalan KeluarTipe 'unknown'Nil dan Tipe OpsionalInferensi Tipe dalam PraktikAnotasi Tipe EksplisitUlasan: Latihan Tipe Inti5Alias, Union, dan Intersection
Alias Tipe untuk Tipe PrimitifTipe UnionMenggunakan Tipe UnionTipe LiteralTipe IntersectionMenggabungkan Alias TipeRekap: Kombinasi Tipe Lanjutan3Tabel Bertipe: array & map
Array BertipeMenambahkan dan Membaca ElemenApa Itu Tipe Map?Mendeklarasikan dan Mengakses MapMenelusuri TabelTabel dengan Bentuk CampuranMembaca GridMembuat Gridtable.unpackRangkuman: array dan mapLatihan sendiri: Compiler Luau online