Menu
CoddyTech

混合结构的表

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

数组可以保存许多相同类型的值;映射表保存一种键类型和一种值类型。但你最常用的 Lua 表通常会在命名字段中混合不同类型:例如,一个玩家包含字符串类型的名称、数字类型的分数和布尔类型的标记。Luau 使用< חז strong>结构来为这些表指定类型:这种表类型会列出每个字段及其类型。

type Point = {x: number, y: number}

local origin: Point = {x = 0, y = 0}
print(origin.x)

type 关键字会创建一个类型别名:一个可重复使用的结构名称。它只对类型检查器有效:运行时不会创建名为 Point 的值。每个字段都可以有不同的类型:

type Player = {name: string, score: number, active: boolean}

local player: Player = {name = "Rio", score = 1500, active = true}
print(`{player.name} has {player.score} points`)

声明结构后,类型检查器就知道 player.score 是数字,并能及早标出错误:比如拼写错误 player.scroe(不存在这个字段),或赋值 player.score = "high"(类型错误)。这只是初步了解:后续的章会更深入地讲解结构、可选字段和方法。

challenge icon

挑战

简单

用形状类型描述一个玩家。

  1. 写出 type Player = {name: string, score: number, active: boolean}。
  2. 创建 local player: Player = {name = "Kai", score = 900, active = false}。
  3. 打印 player.active,然后打印 `{player.name} has {player.score} points`。

按“运行代码”:输出会显示 false 和 Kai has 900 points。

亲手试试

-- 1)type Player = {...}
-- 2)local player: Player = {...}
-- 3)先打印 active 标志,再打印摘要行

Luau 入门中的所有课

自己练习: Luau 在线编译器