声明和访问映射
本课属于 Coddy Lua 学习旅程的“Luau 入门”单元。第 16 课,共 80 课。
声明一个带类型的映射,写法和你一直在写的表构造器类似:类型注解只限定键和值的类型:
local stock: {[string]: number} = {apples = 12, bananas = 5}读取和写入使用你熟悉的索引方式。对于有效标识符形式的键,stock.apples 和 stock["apples"] 会访问同一个条目;方括号形式也可以处理包含空格的键,或存储在变量中的键:
stock["cherries"] = 20 -- 添加一个新条目
stock.bananas = 8 -- 更新一个已有条目
print(stock["apples"]) -- 12
print(stock["plums"]) -- nil:从未设置类型检查器会检查每次写入:stock["apples"] = "many" 会被标记为错误,因为 "many" 不是数字;用数字作为键也会被标记为错误,因为键必须是字符串。
要删除一个条目,可以将 nil 赋给它的键:stock["bananas"] = nil 会将其彻底移除,之后读取时会得到 nil。没有单独的删除函数;这是标准的 Lua 写法,在映射上也能通过类型检查。
挑战
简单维护一份带类型的学习用品映射表。
- 声明
local stock: {[string]: number} = {pens = 40, rulers = 15}。 - 添加
stock["erasers"] = 25,并将rulers改为10。 - 打印
pens、rulers、erasers和glue的库存,每行一个。
按“运行”:输出会显示 40、10、25 和 nil。
亲手试试
-- 1)声明 stock:{[string]: number},其中 pens = 40、rulers = 15。
-- 2)添加 erasers = 25,并将 rulers 改为 10。
-- 3)依次输出 pens、rulers、erasers,然后输出 glue。
Luau 入门中的所有课
自己练习: Luau 在线编译器