Tại sao nên dùng Luau?
Thuộc phần Giới thiệu về Luau trong hành trình Lua của Coddy. Bài học 2 trên 80.
Hệ thống kiểu của Luau mang lại ba lợi ích lớn, giúp quá trình phát triển an toàn và hiệu quả hơn.
Phát hiện lỗi sớm: trình kiểm tra kiểu phân tích code khi bạn chỉnh sửa, trước khi chạy. Hãy xem một lỗi kinh điển trong Lua: truyền nil vào nơi cần một số:
-- Lua: không có gì cảnh báo bạn về việc này
local function calculateTotal(price, tax)
return price + tax
end
print(calculateTotal(nil, 0.1))
-- ✗ lỗi khi chạy: cố thực hiện phép tính với nilTrong Lua thuần, sự cố đó chỉ xảy ra khi lời gọi sai cuối cùng được thực thi, có thể là trước mặt người dùng. Tệ hơn, đôi khi Lua còn che giấu hoàn toàn lỗi: "50" + 0.1 âm thầm chuyển chuỗi thành số rồi trả về 50.1… cho đến ngày chuỗi đó không còn là số. Với chú thích kiểu của Luau, lỗi được báo ngay lập tức:
local function calculateTotal(price: number, tax: number)
return price + tax
end
calculateTotal(nil, 0.1) -- ✗ lỗi kiểu dữ liệu khi chỉnh sửa: nil không phải là sốCode dễ đọc hơn: chú thích kiểu đóng vai trò như tài liệu. price: number cho bạn và đồng đội biết chính xác hàm cần gì: không phải đoán mò hay lần theo phần triển khai.
Công cụ phát triển tốt hơn: vì trình soạn thảo biết kiểu của từng biến, bạn sẽ nhận được tính năng tự động hoàn thành chính xác, tái cấu trúc an toàn hơn và khả năng điều hướng thông minh hơn. Nhập dấu chấm sau một giá trị đã có kiểu, trình soạn thảo sẽ liệt kê chính xác những gì có thể dùng.
Thử thách
DễGán kiểu number cho cả hai tham số của calculateTotal.
- Ở dòng đầu tiên, đổi
(price, tax)thành(price: number, tax: number). - Giữ nguyên lời gọi
calculateTotal(80, 8)ở cuối.
Nhấn Chạy code: đầu ra hiển thị 88.
Tự làm thử
local function calculateTotal(price, tax)
return price + tax
end
print(calculateTotal(80, 8))
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