Lua表取值异常:非空Table调用索引1返回nil(Roblox环境)
Lua表数字索引返回nil的原因
你定义的Lua表是字符串键的哈希表结构,Lua里的表同时包含数组部分和哈希表部分:
- 数组部分存储数字索引(从1开始连续)的元素
- 哈希表部分存储非数字键(比如字符串)的键值对
看你的代码:
local Cache = { SurvivalGameFramework = { parent = game.ServerStorage } }
这里Cache的键是字符串"SurvivalGameFramework",Cache.SurvivalGameFramework的键是字符串"parent",两个表的数组部分都没有任何元素,所以用数字索引[1]访问时自然返回nil——因为根本没在数组位置存东西。
如果想让Cache[1]能取到值,得显式给数字索引赋值,比如:
local Cache = { [1] = "some value", SurvivalGameFramework = { parent = game.ServerStorage, [1] = game.Workspace } }
这时Cache[1]和Cache.SurvivalGameFramework[1]才会返回对应的内容。
内容的提问来源于stack exchange,提问作者Plant Food Power
相关产品推荐
相关产品推荐

