Menu
CoddyTech

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, Alice

Tham 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.

challenge icon

Thử thách

Dễ

Gán giá trị mặc định cho tham số không bắt buộc.

  1. Viết local function calculateTax(price: number, rate: number?): number.
  2. Dòng đầu tiên là rate = rate or 0.05; sau đó trả về price * rate.
  3. 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

Tự luyện tập: Trình biên dịch Luau online