我使用 LUA 作为 Minecraft mod 的一部分 - 我不确定这会影响多少 - 请参阅 openComputers。
该代码尝试将给定字符串与通过迭代一系列包含具有名称的项的槽而获得的字符串进行匹配。
重要的代码块是:
term.write("enter name")
name=term.read()
返回一个字符串,例如“森林”不带引号。我还检查了数据类型。
然后,代码会解析物品清单,寻找名称中带有“Forest”的物品。第一行的价值在某种程度上是特定于游戏的,但输出应该使这一点变得不重要。
item = storage.getStackInSlot(sides.top,i)
这会返回一堆内容,但随后会通过以下内容进行改进:
item_name = item.label
它返回“Bee Sample - Species: Forest”,我也检查过这绝对是一个字符串。
然后,代码对于匹配/查找应返回某些内容的行返回 nil != nil。我什至在 string.find 操作之前打印两个字符串。
match = string.match(item_name, name, 1, true)
print(match)
返回零。
我不知道为什么这会返回 false。我已经在解释器中分别测试了匹配和查找功能,例如:
a=bic
b=ambico
string.find(b,a)
一切都很好。
抱歉,如果这是非常明显的,非常感谢