能否在 Lua 表的关键字中使用冒号

我正在编写 Minecraft mod computercraft 的程序。我想知道是否可以像这样做:

tbl = {}
var = "minecraft:dirt"
tbl[var] = {pos ={0,0,0,1}}

出于某些原因,我觉得它不能正确保存这个表,所以当我执行

print(tbl["minecraft:dirt"].pos[4])

时会出错。是否可以在关键字中使用冒号?

点赞
用户2858170
用户2858170
tbl = {}
var = "minecraft:dirt"
tbl[var] = {pos ={0,0,0,1}}
print(tbl["minecraft:dirt"].pos[4])

输出结果为 1

这是语法上正确的,不应该出现任何错误信息。

唯一无法使用冒号的是语法糖 tbl.minecraft:dirt,因为 Lua 名称中不允许出现冒号。但如果您像这样使用 tbl["minecraft:dirt"],冒号就是完全可以的。

简而言之:是的,您可以在表键中使用冒号。

2021-02-24 11:31:33