LUA教程函式命名引數 19

2021-10-08 01:42:33 字數 1277 閱讀 9386

lua的函式引數是和位置相關的,呼叫時實參會按順序依次傳給形參。有時候用名字指定引數是很有用的,比如rename函式用來給乙個檔案重新命名,有時候我們我們記不清命名前後兩個引數的順序了:

-- invalid code

rename(old="temp.lua", new="temp1.lua")

上面這段**是無效的,lua可以通過將所有的引數放在乙個表中,把錶作為函式的唯一引數來實現上面這段偽**的功能。因為lua語法支援函式呼叫時實參可以是表的構造。

rename
根據這個想法我們重定義了rename:

function rename (arg)

return os.rename(arg.old, arg.new)

end

當函式的引數很多的時候,這種函式引數的傳遞方式很方便的。例如gui庫中建立窗體的函式有很多引數並且大部分引數是可選的,可以用下面這種方式:

w = window  

function window (options)

-- check mandatory options

if type(options.title) ~= "string" then

error("no title")

elseif type(options.width) ~= "number" then

error("no width")

elseif type(options.height) ~= "number" then

error("no height")

end-- everything else is optional

_window(options.title,

options.x or 0, -- default value

options.y or 0, -- default value

options.width, options.height,

options.background or "white", -- default

options.border -- default is false (nil)

)end

原文:lua乙個小巧指令碼語言學習筆記

lua教程函式命名引數-19

LUA教程函式可變引數 18

lua函式可以接受可變數目的引數,和c語言類似在函式引數列表中使用三點 表示函式有可變的引數。lua將函式的引數放在乙個叫arg的表中,除了引數以外,arg表中還有乙個域n表示引數的個數。例如,我們可以重寫print函式 printresult function print for i,v in i...

Lua教程(二十) Lua呼叫C函式

lua可以呼叫c函式的能力將極大的提高lua的可擴充套件性和可用性。對於有些和作業系統相關的功能,或者是對效率要求較高的模組,我們完全可以通過c函式來實現,之後再通過lua呼叫指定的c函式。對於那些可被lua呼叫的c函式而言,其介面必須遵循lua要求的形式,即typedef int lua cfun...

LUA教程require函式 30

lua提供高階的require函式來載入執行庫。粗略的說require和dofile完成同樣的功能但有兩點不同 1.require會搜尋目錄載入檔案 2.require會判斷是否檔案已經載入避免重複載入同一檔案。由於上述特徵,require在lua中是載入庫的更好的函式。require使用的路徑和普...