Menu
CoddyTech

Giá trị Boolean 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 28 trên 80.

Một điểm cần lưu ý mà bạn đã biết từ Lua: or cũng thay thế false. Với tham số boolean? cần mặc định là true, flag = flag or true sẽ biến giá trị false được truyền vào thành true, vì false or true là true:

local function sendAlert(message: string, loud: boolean?)
    loud = loud or true   -- sendAlert("Hi", false) vẫn nhận giá trị true
    print(message, loud)
end

Thay vào đó, hãy kiểm tra nil một cách tường minh. Cách này chỉ gán giá trị mặc định khi bạn không truyền đối số:

local function sendAlert(message: string, loud: boolean?)
    if loud == nil then
        loud = true
    end
    print(message, loud)
end

sendAlert("Hi")         -- Hi  true
sendAlert("Hi", false)  -- Hi  false

Với chuỗi và số, or an toàn vì chỉ nil và false được xem là falsy.

challenge icon

Thử thách

Dễ

Đặt giá trị mặc định cho tham số boolean là true, sao cho false không thể ghi đè giá trị đó.

  1. Viết local function shippingCost(weight: number, insured: boolean?): number.
  2. Bắt đầu hàm bằng if insured == nil then insured = true end.
  3. Trả về weight * 0.5 + 2 khi insured là true, nếu không thì trả về weight * 0.5.
  4. In ra shippingCost(4) và shippingCost(4, false).

Nhấn Run Code: đầu ra kết thúc bằng 4 và 2.

Tự làm thử

-- Đặt giá trị mặc định bằng cách dùng `or`
local function calculateTax(price: number, rate: number?): number
    rate = rate or 0.05
    return price * rate
end

print(calculateTax(100))
print(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