1
我正在創建一個跟蹤數據庫,收集信息以報告小時,每天,每週,每月,每年,每級,每班和每層的信息。因此,我有一個名爲tracker
的表格,它由一個表格子集組成,反映了不同的報告(即table["ThisHour"]
等)。我想知道是否有一種方法可以合併所有這些只添加相同信息的行。下面是我使用的,只有兩個子表(而不是8我上面列出)沿功能:Lua:爲多個子表添加相同的信息 - 更簡單的方法?
function exp_update(xp, gold, str, con, dex, wis, int, luck, bpracs, btrains, pracs, trains, qp)
local xtable = tracker[playername]["Exp"]
addto(xtable["ThisHour"],"Exp",xp)
addto(xtable["ThisHour"],"Gold",gold)
addto(xtable["ThisHour"],"BonusStr",str)
addto(xtable["ThisHour"],"BonusCon",con)
addto(xtable["ThisHour"],"BonusDex",dex)
addto(xtable["ThisHour"],"BonusWis",wis)
addto(xtable["ThisHour"],"BonusInt",int)
addto(xtable["ThisHour"],"BonusLuck",luck)
addto(xtable["ThisHour"],"BonusPracs",bpracs)
addto(xtable["ThisHour"],"BonusTrains",btrains)
addto(xtable["ThisHour"],"Pracs",pracs)
addto(xtable["ThisHour"],"Trains",trains)
addto(xtable["ThisHour"],"Qp",qp)
addto(xtable["ThisHour"],"Quests")
addto(xtable["ThisLevel"],"Exp",xp)
addto(xtable["ThisLevel"],"Gold",gold)
addto(xtable["ThisLevel"],"BonusStr",str)
addto(xtable["ThisLevel"],"BonusCon",con)
addto(xtable["ThisLevel"],"BonusDex",dex)
addto(xtable["ThisLevel"],"BonusWis",wis)
addto(xtable["ThisLevel"],"BonusInt",int)
addto(xtable["ThisLevel"],"BonusLuck",luck)
addto(xtable["ThisLevel"],"BonusPracs",bpracs)
addto(xtable["ThisLevel"],"BonusTrains",btrains)
addto(xtable["ThisLevel"],"Pracs",pracs)
addto(xtable["ThisLevel"],"Trains",trains)
addto(xtable["ThisLevel"],"Qp",qp)
addto(xtable["ThisLevel"],"Quests")
end
正如你所看到的,這已經是短短兩年子表相當多條線路。對於每個子表,這是14行代碼,或者,如果我將它們全部放入,我希望儘可能少地合併112行代碼。
的AddTo就功能是定義,如果你需要它:
function addto(t,k,v)
t[k] = t[k] + (v or 1)
end
正是我一直在尋找。謝謝! – Josh 2012-04-01 01:26:40