Menu
CoddyTech

内联表结构注解

本课属于 Coddy Lua 学习旅程的“Luau 入门”单元。第 39 课,共 80 课。

在 Lua 中,你已经长期使用表作为记录:local user = {name = "Ana", age = 20}。没有什么能阻止你拼错字段、忘记字段,或者在应该存放数字的地方存入字符串。只有等代码运行时,你才会发现问题。

Luau 允许你直接在声明中描述这种表的形状,在花括号中列出每个字段及其类型:

local user: {name: string, age: number} = {
    name = "Ana",
    age = 20,
}

把它和你已经了解的表类型对比一下:{number}描述一个数组,而{[string]: number}描述一个键为任意字符串的映射。形状更加精确。它逐个命名每个字段,并为每个字段指定自己的类型。

声明形状后,类型检查器会在你编辑代码时根据它检查表。缺少字段或值的类型不正确,都会在代码运行前标记出来:

local user: {name: string, age: number} = {
    name = "Ana",
    age = "twenty", -- ✗ 类型错误:string 不是 number
}

和往常一样,类型注解不会增加任何运行时行为:这个表就是一个普通的 Lua 表。内联形状非常适合那些不打算重复使用的一次性结构;在下一课中,你会给形状命名。

challenge icon

挑战

简单

直接在声明中描述学生记录。

  1. 声明 local student: {name: string, studentId: number} = {name = "Sarah Johnson", studentId = 12345}。
  2. 先输出 student.name,再输出 student.studentId。

按“运行”按钮:输出会显示 Sarah Johnson 和 12345。

亲手试试

-- 1)用内联形状注解声明 student。
-- 2)先输出它的 name,再输出它的 studentId。

Luau 入门中的所有课

自己练习: Luau 在线编译器