Giá trị tham số mặc định
Thuộc phần Giới thiệu về Luau trong hành trình Lua của Coddy. Bài học 27 trên 80.
Tham số tùy chọn để lại cho bạn một giá trị nil cần xử lý. Thường thì điều bạn thực sự muốn là một giá trị dự phòng: “nếu bên gọi không nói gì, hãy dùng X”. Luau không có cú pháp giá trị mặc định trong phần khai báo hàm (không có greeting: string = "Hello"); thay vào đó, bạn dùng cách quen thuộc của Lua, giờ có thêm kiểu dữ liệu:
function greet(name: string, greeting: string?): string
greeting = greeting or "Hello"
return `{greeting}, {name}`
end
print(greet("Alice")) -- Hello, Alice
print(greet("Alice", "Howdy")) -- Howdy, AliceTham số được ghi chú là tùy chọn (string?), và dòng đầu tiên trong thân hàm thay nil bằng giá trị mặc định. Cách này hoạt động vì nil là giá trị falsy: nil or "Hello" cho kết quả là "Hello". Sau dòng đó, trình kiểm tra biết rằng greeting không thể còn là nil.
Thử thách
DễGán giá trị mặc định cho tham số không bắt buộc.
- Viết
local function calculateTax(price: number, rate: number?): number. - Dòng đầu tiên là
rate = rate or 0.05; sau đó trả vềprice * rate. - In ra
calculateTax(100)vàcalculateTax(200, 0.08).
Nhấn Chạy code: đầu ra hiển thị 5, sau đó là 16.
Tự làm thử
-- 1) calculateTax(price: number, rate: number?): number
-- Đặt rate mặc định là 0.05 bằng cách dùng `or`
-- 2) In ra calculateTax(100) và calculateTax(200, 0.08)
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