#arrays #lua #lua-table
#массивы #lua #lua-таблица
Вопрос:
У меня есть многомерная таблица в Lua, но я не могу создать ее, чтобы иметь возможность использовать в Lua?
Таблица
items ::= {
{["category"]="tools", ["name"]="hammer", ["price"]=10, ["quantity"]=5 },
{["category"]="tools", ["name"]="saw", ["price"]=15, ["quantity"]=4 },
{["category"]="tools", ["name"]="screwdriver", ["price"]=4, ["quantity"]=12 },
{["category"]="tools", ["name"]="measuring tape", ["price"]=9, ["quantity"]=3 },
{["category"]="tools", ["name"]="pliers", ["price"]=10, ["quantity"]=5 },
{["category"]="tools", ["name"]="wrench", ["price"]=10, ["quantity"]=5 },
{["category"]="fasteners", ["name"]="nails", ["price"]=.1, ["quantity"]=1500 },
{["category"]="fasteners", ["name"]="screws", ["price"]=.2, ["quantity"]=1200 },
{["category"]="fasteners", ["name"]="staples", ["price"]=.05, ["quantity"]=2000 },
}
Ошибка:
'<name>' expect near ':'
Ответ №1:
Это ::=
немного странно. Похоже, что вы используете ASN.1 вместо Lua.
Попробуйте это вместо:
items = {
{["category"]="tools", ["name"]="hammer", ["price"]=10, ["quantity"]=5 },
{["category"]="tools", ["name"]="saw", ["price"]=15, ["quantity"]=4 },
{["category"]="tools", ["name"]="screwdriver", ["price"]=4, ["quantity"]=12 },
{["category"]="tools", ["name"]="measuring tape", ["price"]=9, ["quantity"]=3 },
{["category"]="tools", ["name"]="pliers", ["price"]=10, ["quantity"]=5 },
{["category"]="tools", ["name"]="wrench", ["price"]=10, ["quantity"]=5 },
{["category"]="fasteners", ["name"]="nails", ["price"]=.1, ["quantity"]=1500 },
{["category"]="fasteners", ["name"]="screws", ["price"]=.2, ["quantity"]=1200 },
{["category"]="fasteners", ["name"]="staples", ["price"]=.05, ["quantity"]=2000 },
}
Когда я использую это, я получаю следующее в оболочке Lua:
for k,v in pairs(items) do for k1,v1 in pairs(v) do print(k1,v1) end end
price 10
quantity 5
name hammer
category tools
price 15
quantity 4
name saw
category tools
price 4
quantity 12
name screwdriver
category tools
price 9
quantity 3
name measuring tape
c ategory tools
price 10
quantity 5
name pliers
category tools
price 10
quantity 5
name wrench
category tools
price 0.1
quantity 1500
name nails
category fasteners
price 0.2
quantity 1200
name screws
category fasteners
price 0.05
quantity 2000
name staples
category fasteners
Ответ №2:
Вот способ, которым вы могли бы создавать таблицы.
function create_table()
local l={} -- Initialize table.
l[0]=[[]] -- Clear nil @ index 0.
return l
end
t=create_table()
print(t) -- Prints table which is stored in memory.
--[[
If you don't want to create everyday tables, you can use this matrix.
]]--
m={{["id"]=1},{["id"]=2,["name"]="Mr. Anon",["leet"]=1337}}
print(m[1]["id"]..", "..m[2]["id"]..", "..m[2]["name"]..", "..m[2]["leet"]..".")
# Table creation #
## Introduction ##
### How to guide ###