Lua中的參數機制是具備「位置性」的,也就是說在調用一個函數時,實參是經過它在參數表中的位置與形參匹配起來。但有時經過名稱來指定實參也是頗有用的。函數
將全部的實參組織到一個table中,並將這個table做爲惟一的實參傳給函數,使用時能夠經過table查找到須要的值。lua
細節:當實參只有一個table構造式時,函數調用中的圓括號是無關緊要的。spa
function rename(arg) return os.rename(arg.old, arg.new) end
當一個函數擁有大量的實參,而其中大部分參數時可選的話,則能夠使用這種參數傳遞風格,而這其中大部分可選的部分最好使用具名實參。 code
w = window{x = 0, y = 0, width = 300, height = 200}
widow函數能夠根據要求檢查一些必填的函數,或者爲某些參數添加默認值。假設「_window」纔是真正用於建立窗口的函數,他要求全部的參數以正確的次序傳入,那麼能夠這樣寫:io
function window(options) -- 檢查必要的參數 if type(options.width) ~= "number" then error "no width" elseif type(option.height) ~= "number" then error "no height" end --其餘參數可選 _window(option.x or 0, --默認值 option.y or 0,--默認值 option.width, --默認值 option.height, --默認值 ) end