lua 函式 預設值 定義函式引數的預設值

2021-10-16 15:49:00 字數 740 閱讀 6211

如果你想要命名引數和預設值,如php或python,你可以使用表構造函式呼叫你的函式:

myfunction

函式本身可以有這樣的簽名:

function myfunction(t)

setmetatable(t,})

local a,c =

t[1] or t.a,t[2] or t.b,t[3] or t.c

-- function continues down here...

end參數列中缺少的任何值都將從其metatable中的__index表中獲取(參見the documentation on metatables)。

當然,使用表建構函式和函式可以使用更高階的引數樣式 – 你可以寫任何你需要的。例如,here是構造從定義引數名稱和預設值的表中獲取命名或位置參數列的函式的函式,以及採用正則引數列表的函式。

作為非語言級功能,可以更改此類呼叫以提供新的行為和語義:

>可以使變數接受多個名稱

>位置變數和關鍵字變數可以是散布的 – 並且定義兩者可以優先(或導致錯誤)

>可以進行關鍵字無位置變數,以及無名位置

>相當冗長的表構造可以通過解析字串來完成

>如果函式使用除了1表以外的函式呼叫,則可以逐字使用引數列表

一些用於寫引數翻譯器的有用函式是unpack(在5.2中移動到table.unpack),setfenv(在5.2中用新的_env結構不推薦使用)和select(返回給定引數列表中的單個值,列表與』#』)。

函式(引數,預設值)

js定義函式引數沒有非常嚴格的要求,可以有也可以沒有,在呼叫的時候也是,引數可以有可以沒有,也可以和定義時的引數個數不一致 沒有給count傳入引數,預設為10 也可以直接在引數中給count賦值 但是特別注意的是不能給count傳入0,因為0與undefined都是false,因此count傳入的...

函式引數預設值

include 函式預設值為0 intmul int x 0 c語言編譯器會報錯,c 不會 intmain int argc,char ar 預設值不需要在定義時給出,宣告時給出即可 intmul int x 函式預設引數的規則 引數的預設值必須從右向左匹配 函式呼叫時使用了預設值,則後續引數必須使...

c c 函式引數預設值

引數預設值只能出現在函式的宣告中,而不能出現在定義體中。例如 void foo int x 0,int y 0 正確,預設值出現在函式的宣告中 void foo int x 0,int y 0 錯誤,預設值出現在函式的定義體中 為什麼會這樣?我想是有兩個原因 一是函式的實現 定義 本來就與引數是否有...