問題:對可變參數傳遞的時候,采用如下方案:
local cellData
=
{
MsgText = msgText,
Param = ...,
CallBackFunc = callBackFunc,
CallBackContext = callBackContext,
Index = newIndex,
}
這里面其實Param只傳遞看一個參數, 大致總結一下可變參數的使用:
(1)...,標記為變長參數,lua在解析的時候會將相關參數保存在局部變量中
(2)select()函數可以遍歷其中的參數
function printargs(...)
local num_args = select("#", ...)
for i = 1, num_args do
local arg = select(i, ...)
print(i, arg)
end
end
(3)使用
local t = { ... }將參數轉換為table
(4)函數中
--
可以
print("1", ...)
-- 被調整為一個參數
print(..., "1"
)
如果想把可變參數放在前面,需要特殊處理,一種方式就是講后面的參數和前面的參數一起重新打包
function append(...)
local t = { ... }
table.insert(t, x)
-- 將key為數字的轉換為數組
return unpack(t)
end
