You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 20:30:29