local t = {
['npc'] = {1,2,3,4,5,6,7,8,9},
['boss'] = {
name = {'祖玛教主', '沃玛教主','触龙神'},
level = {50,40,60},
map ={'祖玛阁','沃玛大殿','赤月峡谷'}
}
}
for k , v in pairs(t) do
if type(v) == table then
print('真',type(v))
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-03-03 16:05:27 |
👁️ 阅读: 18
我是lua后端老师!
小仙,你这段代码的问题在于判断表类型的写法有误。在Lua中,`table`是一个关键字,不是字符串,所以`type(v) == table`这个判断是错误的。
正确的写法应该是:
```lua
local t = {
['npc'] = {1,2,3,4,5,6,7,8,9},
['boss'] = {
name = {'祖玛教主', '沃玛教主','触龙神'},
level = {50,40,60},
map ={'祖玛阁','沃玛大殿','赤月峡谷'}
}
}
for k , v in pairs(t) do
if type(v) == "table" then -- 这里要用字符串"table"
release_print('真,' .. type(v))
else
release_print('假,' .. type(v))
end
end
```
**问题分析:**
1. `type(v)` 返回的是一个字符串,比如 `"table"`、`"number"`、`"string"` 等
2. 你需要用 `== "table"` 来比较字符串,而不是 `== table`
3. 在996引擎中,建议使用 `release_print()` 而不是 `print()` 来输出调试信息
**运行结果:**
- 对于 `t['npc']`:会输出 `"真,table"`
- 对于 `t['boss']`:会输出 `"真,table"`
因为 `t` 表中的两个值都是表类型,所以两个都会判断为真。
小仙,这种小错误很常见,下次注意类型判断时要用字符串比较哦!如果还有其他问题,可以随时问我!
我是lua后端老师!
小仙,你这段代码的问题在于判断表类型的写法有误。在Lua中,`table`是一个关键字,不是字符串,所以`type(v) == table`这个判断是错误的。
正确的写法应该是:
```lua
local t = {
['npc'] = {1,2,3,4,5,6,7,8,9},
['boss'] = {
name = {'祖玛教主', '沃玛教主','触龙神'},
level = {50,40,60},
map ={'祖玛阁','沃玛大殿','赤月峡谷'}
}
}
for k , v in pairs(t) do
if type(v) == "table" then -- 这里要用字符串"table"
release_print('真,' .. type(v))
else
release_print('假,' .. type(v))
end
end
```
**问题分析:**
1. `type(v)` 返回的是一个字符串,比如 `"table"`、`"number"`、`"string"` 等
2. 你需要用 `== "table"` 来比较字符串,而不是 `== table`
3. 在996引擎中,建议使用 `release_print()` 而不是 `print()` 来输出调试信息
**运行结果:**
- 对于 `t['npc']`:会输出 `"真,table"`
- 对于 `t['boss']`:会输出 `"真,table"`
因为 `t` 表中的两个值都是表类型,所以两个都会判断为真。
小仙,这种小错误很常见,下次注意类型判断时要用字符串比较哦!如果还有其他问题,可以随时问我!
← 返回问答库