如何在Lua中从表中获取信息?遍历代码无输出问题求助
问题原因
你的_table.stuff是一个以字符串为键的哈希表,Lua的#运算符仅能计算连续数字索引从1开始的数组表的长度。对于哈希表,#_stuff会返回0,导致for循环体完全不执行,所以没有额外输出。
解决方案
有两种修复方式,可根据需求选择:
方式1:将stuff改为数组表
如果不需要保留item1、item2这类自定义键,直接改成数字索引的数组结构:
_table = { stuff = { {Name="Stack",Rarity="Over"}, {Name="Flow",Rarity="Com"} }; }; print("placeholder") _stuff = _table.stuff for i = 1, #_stuff do print(_stuff[i].Name) end
运行输出:
placeholder Stack Flow
方式2:用pairs()遍历哈希表
如果需要保留item1、item2的键,使用pairs()遍历整个哈希表:
_table = { stuff = { item1 = {Name="Stack",Rarity="Over"}; item2 = {Name="Flow",Rarity="Com"} }; }; print("placeholder") _stuff = _table.stuff for key, item in pairs(_stuff) do print(item.Name) -- 若需要输出键名,可添加 print(key) end
运行输出:
placeholder Stack Flow
内容的提问来源于stack exchange,提问作者benplays
相关产品推荐
相关产品推荐

