lua 可變參數


問題:對可變參數傳遞的時候,采用如下方案:

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
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM