Tham số tùy chọn
Thuộc phần Giới thiệu về Luau trong hành trình Lua của Coddy. Bài học 26 trên 80.
Trong Lua thuần, bạn luôn có thể bỏ qua đối số: các đối số bị thiếu sẽ âm thầm trở thành nil, và việc quên xử lý trường hợp đó là nguyên nhân kinh điển gây ra bug. Luau làm rõ khả năng này: thêm ? vào kiểu của tham số để đánh dấu tham số đó là tùy chọn.
function greet(name: string, title: string?): string
if title then
return `{title} {name}`
end
return `Hello, {name}`
end
print(greet("Ada")) -- Xin chào, Ada
print(greet("Ada", "Dr.")) -- Dr. Adastring? có nghĩa là "string hoặc nil". Bên gọi có thể truyền một chuỗi hoặc bỏ qua hoàn toàn đối số đó; các tham số không có ? là bắt buộc, và trình kiểm tra sẽ báo lỗi khi lời gọi hàm bỏ qua chúng.
Bên trong hàm, tham số tùy chọn có thể là nil, vì vậy hãy kiểm tra tham số đó trước khi sử dụng: if title then ... end là cách làm phổ biến. Nếu bỏ qua bước kiểm tra rồi nối nil vào một chuỗi, bạn sẽ gặp cùng lỗi khi chạy mà Lua vẫn luôn gây ra; trình kiểm tra kiểu sẽ cảnh báo bạn trước.
Thử thách
DễViết một hàm (function) hồ sơ có tên hiển thị không bắt buộc.
- Viết
local function createUserProfile(username: string, displayName: string?): string. - Trả về
`Profile: {displayName} (@{username})`khi códisplayName, nếu không thì trả về`Profile: @{username}`. - In ra
createUserProfile("john_doe", "John Doe")vàcreateUserProfile("jane_smith").
Nhấn Chạy: đầu ra hiển thị Profile: John Doe (@john_doe) và Profile: @jane_smith.
Tự làm thử
-- 1) createUserProfile(username: string, displayName: string?): string
-- 2) in ra kết quả khi có và không có tên hiển thị
Tất cả bài học trong Giới thiệu về Luau
1Bắt đầu với Luau
Luau là gì?Tại sao nên dùng Luau?Đoạn code Luau đầu tiênKiểm tra kiểu và chế độ lỗiÔn tập: Giới thiệu về Luau4Làm việc với hàm
Kiểu dữ liệu cho tham số và giá trị trả vềKiểu dữ liệu cho hàm ẩn danhHàm không trả về giá trịTham số tùy chọnGiá trị tham số mặc địnhGiá trị Boolean mặc địnhHàm có số lượng tham số thay đổiĐịnh nghĩa kiểu hàmÔn tập: hàm có kiểu dữ liệu2Kiểu dữ liệu cốt lõi
Số, chuỗi và BooleanKiểu 'any': lối thoátKiểu 'unknown'Kiểu Nil và kiểu tùy chọnSuy luận kiểu trong thực tếChú thích kiểu tường minhÔn tập: luyện tập với kiểu dữ liệu cốt lõi5Bí danh kiểu, kiểu hợp và kiểu giao
Bí danh kiểu cho kiểu nguyên thủyKiểu hợpLàm việc với kiểu hợpKiểu literalKiểu giaoKết hợp bí danh kiểuÔn tập: kết hợp kiểu nâng cao3Bảng có kiểu: mảng và Map
Mảng có kiểuThêm và đọc phần tửKiểu Map là gì?Khai báo và truy cập MapDuyệt bảngBảng có cấu trúc hỗn hợpĐọc lướiTạo lướitable.unpackÔn tập: mảng và MapTự luyện tập: Trình biên dịch Luau online