我是Lua的新手,我想尝试显示一个数组中的项目,但它就像一个数组中的数组。
这是我的清单:
local itemlist = {
{ name="blue car", price=5000 },
{ name="red car", price=10000 },
{ name="green car", price=2000 }
}
所以如果我输入文字"红车"我希望它输出这样的东西:
The red car costs 10000 dollars.
我怎么能在lua中这样做? 到目前为止,我只找到了一些字符串匹配示例,我可以看到数组是否包含一个项目,但我想要的是输出和价格。我怎么得到这个价格?我不知道从哪里开始。
答案 0 :(得分:2)
您应该阅读手册中包含序列的表格和表格。然后,您可以决定是使用pairs
还是ipairs
来迭代表格。
另一种方法,如果名称将是唯一的,将改变结构:
local itemlist = {
["blue car"] = { price=5000 },
["red car"] = { price=10000 },
["green car"] = { price=2000 }
}
-- or even
local prices = {
["blue car"] = 5000,
["red car"] = 10000,
["green car"] = 2000
}
print(itemlist["red car"].price);
print(prices["red car"]);
答案 1 :(得分:1)
在您的简单示例中,您不需要模式匹配。
local str = "red car"
for _, v in ipairs(itemlist) do
if v.name == str then
print("The " .. v.name .. " costs " .. tostring(v.price) .. " dollars.")
end
end