为什么使用 Luau?
本课属于 Coddy Lua 学习旅程的“Luau 入门”单元。第 2 课,共 80 课。
Luau 的类型系统有三大优势,能让开发更安全、更高效。
尽早发现错误:类型检查器会在你编辑代码时进行分析,也就是代码运行之前。来看一个经典的 Lua bug:在需要数字的地方传入 nil:
-- Lua:不会有任何提示提醒你这一点
local function calculateTotal(price, tax)
return price + tax
end
print(calculateTotal(nil, 0.1))
-- ✗ 运行时错误:试图对 nil 进行算术运算在纯 Lua 中,只有等到错误的调用真正执行时才会崩溃,这可能发生在用户面前。更糟的是,Lua 有时会完全掩盖这个 bug:"50" + 0.1 会静默地将字符串转换为数字并返回 50.1……直到有一天,字符串不再是数字。使用 Luau 类型标注后,这个错误会立即被标出:
local function calculateTotal(price: number, tax: number)
return price + tax
end
calculateTotal(nil, 0.1) -- ✗ 编辑时出现类型错误:nil 不是数字代码更易读:类型标注可以作为文档。price: number 会明确告诉你和队友函数需要什么,不必猜测,也不必翻看实现代码。
开发工具更强大:编辑器知道每个变量的类型,因此能提供准确的自动补全、更安全的重构和更智能的导航。在带类型的值后输入点号,编辑器就会列出所有可用内容。
挑战
简单为 calculateTotal 的两个参数指定 number 类型。
- 将第一行中的
(price, tax)改为(price: number, tax: number)。 - 保留底部的调用
calculateTotal(80, 8)。
按“运行”:输出会显示 88。
亲手试试
local function calculateTotal(price, tax)
return price + tax
end
print(calculateTotal(80, 8))
Luau 入门中的所有课
自己练习: Luau 在线编译器