2017-04-03 61 views
1

我想將一個變量表作爲參數解壓縮到一個函數調用中。總之,我正在通過這樣做來模仿依賴注入到我的過程中。當我在https://www.lua.org/cgi-bin/demo執行此操作時,它告訴我解壓縮爲零。它似乎被刪除?有沒有其他的方法來做到這一點,而不是傳遞一個有對象實例的表?我喜歡在PostStart()調用中指定每個對象的想法。Lua 5.3解壓縮

Object1 = {} 

function Object1:Create() 
    local obj = {} 

    obj.name = "Object1" 

    return obj 
end 

Object2 = {} 

function Object2:Create() 
    local obj = {} 

    obj.name = "Object2" 

    return obj 
end 

function PostStart(obj1, obj2) 
    print(obj1.name, obj2.name) 
end 

objs = {} 
table.insert(objs, Object1:Create()) 
table.insert(objs, Object2:Create()) 

PostStart(unpack(objs)) 
+1

在你的代碼的頂部做這個'解包= table.unpack或unpack' – tonypdmtr

+0

噢,那很容易。謝謝 :) – user441521

回答

3

在線Lua演示運行最新版本的Lua,目前是5.3。

在Lua中5.2,unpack移至table.unpack