2011-04-17 76 views
1

我有一個多維表在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 }, 

} 

Error: '<name>' expect near ':'

回答

8

::=是有點怪異。看起來你在做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 
0

這裏你可以創建表格的方式。

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 ###