Menu
CoddyTech

类型化数组

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

类型化数组是 Luau 中最有用的功能之一,可以在整理多个值的同时保证类型安全。

在 Lua 中,数组只是一个在位置 1, 2, 3, … 上存放值的表,它可以同时存放数字、字符串和布尔值。Luau 允许你使用 {Type} 语法声明表中只能包含一种类型的元素:

local numbers: {number} = {1, 2, 3, 4, 5}
local names: {string} = {"Alice", "Bob", "Charlie"}
local flags: {boolean} = {true, false, true}

声明类型化数组时,Luau 的类型检查器会强制要求其中只能放入声明类型的值。如果把字符串插入 {number} 数组,你会在编辑代码时看到类型错误,此时代码还没有运行:

local scores: {number} = {85, 90, 78}
table.insert(scores, "oops") -- ✗ 类型错误:字符串不是数字

你已经了解的 Lua 表的规则仍然适用:数组的索引从 1 开始(scores[1] 是第一个元素),#scores 表示长度,table.insert 和 table.remove 也照常使用。类型标注增加了安全性,不会带来新的运行时行为。

challenge icon

挑战

简单

将分数和姓名存储在类型化数组中。

  1. 声明 local scores: {number} = {85, 92, 78}。
  2. 声明 local studentNames: {string} = {"Alice", "Bob", "Charlie"}。
  3. 打印 scores[1]、#scores 和 studentNames[2],每行一个。

按“运行”:输出会显示 85、3 和 Bob。

亲手试试

-- 1) 声明 scores: {number} 和 studentNames: {string}
-- 2) 输出第一个分数、分数的数量和第二个名字

Luau 入门中的所有课

自己练习: Luau 在线编译器