推荐答案
在 Lua 中,可以通过以下两种方式访问 table 元素:
使用点号(.)访问:
local t = {name = "Lua", version = "5.4"} print(t.name) -- 输出: Lua print(t.version) -- 输出: 5.4使用方括号([])访问:
local t = {name = "Lua", version = "5.4"} print(t["name"]) -- 输出: Lua print(t["version"]) -- 输出: 5.4
本题详细解读
1. 使用点号(.)访问
点号访问是 Lua 中最常见的访问 table 元素的方式。它适用于键是字符串且符合 Lua 标识符命名规则的情况。例如,t.name 等同于 t["name"]。
2. 使用方括号([])访问
方括号访问方式更加灵活,适用于以下情况:
- 键是字符串但不符 Lua 标识符命名规则(如包含空格或特殊字符)。
- 键是数字或其他类型的值。
- 键是动态生成的。
例如:
local t = {["first name"] = "Lua", [1] = "version", [true] = "boolean key"}
print(t["first name"]) -- 输出: Lua
print(t[1]) -- 输出: version
print(t[true]) -- 输出: boolean key3. 访问嵌套 table
Lua 中的 table 可以嵌套,访问嵌套 table 的元素时,可以连续使用点号或方括号:
local t = {info = {name = "Lua", version = "5.4"}}
print(t.info.name) -- 输出: Lua
print(t["info"]["version"]) -- 输出: 5.44. 访问不存在的键
如果尝试访问 table 中不存在的键,Lua 会返回 nil:
local t = {name = "Lua"}
print(t.age) -- 输出: nil5. 总结
- 点号访问适用于键是简单字符串的情况。
- 方括号访问适用于键是复杂字符串、数字或其他类型的情况。
- 嵌套 table 可以通过连续访问来获取深层元素。
- 访问不存在的键会返回
nil。