好吧,所以我刚刚进入lua并发现自己陷入了以下困境:
我有函数peripheral.getNames()(这是一个自定义函数)
它将返回一个带有结构键值的表,而key始终是一个数字,从1开始,值将是函数找到的值(它搜索连接到它的设备)
在我的示例中,它创建了一个看起来像这样的表
1 herp
2 derp
3 monitor_1
4 morederp
我可以使用以下
打印值local pgn = peripherals.getNames()
for key,value in pairs(pgn) do
setCursorPos(1,key)
write(value)
end
end
这将在我的显示屏上的键处输出表格的相应值,如此
herp
derp
monitor_1
morederp
现在,我尝试过滤我的结果,因此只有在值包含' monitor'
时才打印一些内容我试图用
来实现这个目标for key,value in pairs(pgn) do
if string.match(value, monitor) then
#dostuff
end
end
但它总是返回错误的参数:字符串预期,得到零' 所以很明显string.match要么不接受' value'或者,value不是字符串 所以我尝试先转换价值
for key,value in pairs(pgn) do
value = tostring(value)
if ....
#dostuff
end
end
但它仍然会抛出相同的错误
你们有没有想过我怎么可能得到string.match来接受' value'或者如果有其他方法来检查“价值”的内容。在这个for循环中的模式?
答案 0 :(得分:1)
错误消息是在谈论变量monitor
,它未定义,因此具有零值。
试试string.match(value, "monitor")
。