Menu
CoddyTech

为什么使用 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 会明确告诉你和队友函数需要什么,不必猜测,也不必翻看实现代码。

开发工具更强大:编辑器知道每个变量的类型,因此能提供准确的自动补全、更安全的重构和更智能的导航。在带类型的值后输入点号,编辑器就会列出所有可用内容。

challenge icon

挑战

简单

为 calculateTotal 的两个参数指定 number 类型。

  1. 将第一行中的 (price, tax) 改为 (price: number, tax: number)。
  2. 保留底部的调用 calculateTotal(80, 8)。

按“运行”:输出会显示 88。

亲手试试

local function calculateTotal(price, tax)
    return price + tax
end

print(calculateTotal(80, 8))

Luau 入门中的所有课

自己练习: Luau 在线编译器