类型化数组
本课属于 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 也照常使用。类型标注增加了安全性,不会带来新的运行时行为。
挑战
简单将分数和姓名存储在类型化数组中。
- 声明
local scores: {number} = {85, 92, 78}。 - 声明
local studentNames: {string} = {"Alice", "Bob", "Charlie"}。 - 打印
scores[1]、#scores和studentNames[2],每行一个。
按“运行”:输出会显示 85、3 和 Bob。
亲手试试
-- 1) 声明 scores: {number} 和 studentNames: {string}
-- 2) 输出第一个分数、分数的数量和第二个名字
Luau 入门中的所有课
自己练习: Luau 在线编译器