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)
endThay 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 falseVới chuỗi và số, or an toàn vì chỉ nil và false được xem là falsy.
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ị đó.
- Viết
local function shippingCost(weight: number, insured: boolean?): number. - Bắt đầu hàm bằng
if insured == nil then insured = true end. - Trả về
weight * 0.5 + 2khiinsuredlà true, nếu không thì trả vềweight * 0.5. - 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
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