Lua(八)引數的簡化 可變引數(變長引數)

2021-10-06 22:48:50 字數 1706 閱讀 4814

引數的簡化

概念:函式若只有乙個引數,並且此引數是乙個字串或者table構造式,則(實參)圓括號可以省略。

function testfunction(str)

print("testfunction"..str)

endtestfunction("aaa")

testfunction "aaa"

--->

testfunctionaaa

testfunctionaaa

function arrayshow(arr)

for i,v in pairs(arr) do

print(v)

endendarr =

arrayshow(arr)

print("------")

arrayshow

--->01

23------01

23

可變引數(變長引數)

function show(...)

for i,v in pairs() do

print(v)

endendshow("a","b","c")

--->ab

c

function show(...)

print("引數個數:"..#arg)

for i,v in pairs(arg) do

print(v)

endendshow("a","b","c")

--->

引數個數:3ab

c3function show(...)

print("引數個數:"..#arg)

for i,v in ipairs(arg) do

print(v)

endendshow("a","b","c")

--->

引數個數:3ab

c

function show(...)

print("引數個數:"..#arg)

for i,v in ipairs(arg) do

print(v)

endendshow("a","b",nil,"c")

--->

引數個數:4ab

function show(...)

print("引數個數:"..#arg)

for i,v in pairs(arg) do

print(v)

endendshow("a","b",nil,"c")

--->

引數個數:4ab

c4function show(...)

print("引數個數:"..select('#',...))

local num

for i = 1,select('#',...) do

num = select(i,...)

print(num)

endendshow("a","b",nil,"c")

--->

引數個數:4ab

nilc

select('#',...)表示可變引數的長度。

select(i,...)表示從索引數值到可變引數長度值的所有內容。

lua 可變長引數

lua 中 在引數列表中意為 可變引數 這個可變是指,通過這個可以輸入很多引數,但是不需要一一枚舉出來!例子 function a local a1 a2,a3,a4 print this is local num a1,a2,a3,a4 return a1,a2,a3,a4 endlocal at...

可變長引數

由於在c語言中沒有函式過載,解決不定數目函式引數問題變得比較麻煩,即使採用c 如果引數個數不能確定,也很難採用函式過載。對這種情況,提出了指標引數來解決問題。如printf 函式,其原型為 int printf const char format,它除了有乙個引數format固定以外,後面跟的引數的...

可變長引數

可變長引數 指的是在呼叫函式時,傳入的引數個數可以不固定 呼叫函式時,傳值的方式無非兩種,一種是位置實參,另一種是關鍵字實參,因此形參也必須得有兩種解決方法,以此來分別接收溢位的位置實參 與關鍵字實參 形參中的會將溢位的位置實參全部接收,然後儲存元組的形式,然後把元組賦值給後的引數。需要注意的是 後...