推荐答案
在 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 key
3. 访问嵌套 table
Lua 中的 table 可以嵌套,访问嵌套 table 的元素时,可以连续使用点号或方括号:
local t = {info = {name = "Lua", version = "5.4"}} print(t.info.name) -- 输出: Lua print(t["info"]["version"]) -- 输出: 5.4
4. 访问不存在的键
如果尝试访问 table 中不存在的键,Lua 会返回 nil
:
local t = {name = "Lua"} print(t.age) -- 输出: nil
5. 总结
- 点号访问适用于键是简单字符串的情况。
- 方括号访问适用于键是复杂字符串、数字或其他类型的情况。
- 嵌套 table 可以通过连续访问来获取深层元素。
- 访问不存在的键会返回
nil
。