在lua中,函數是一種“第一類值”,它們具有特定的詞法域。
第一類值:表示在lua中,函數與其他傳統類型的值(數字和字符串)具有相同的權利,函數可以存儲到變量中(無論全局變量還是局部變量)或者是table中,可以作為實參傳遞給其他函數,還可以作為其他函數的返回值。
詞法域:是指一個函數可以嵌套在另一個函數中。內部的函數可以訪問外部函數中的變量。
看例子代碼:
復制代碼 代碼如下:
do
function foo(a, b, c)
print(a, b, c);
end
local c = foo;
c(2, 3, 4);
end
輸出的結果是:2, 3, 4
例子:
復制代碼 代碼如下:
do
function derivative(f, delta)
delta = delta or 0.01
print("delta: ", delta);
return function (x)
return (f(x + delta) - f(x)) / delta
end
end
local c = derivative(math.sin)
print(math.cos(10), c(10))
end
在上面的例子中,
復制代碼 代碼如下:
c = function(x) return (math.sin(x + 0.1) -math.sin(x)) / 0.01
因為:
復制代碼 代碼如下:
local c = derivative(math.sin)
將:
復制代碼 代碼如下:
f = math.sin
您可能感興趣的文章:- Lua中的模塊與module函數詳解
- Lua中調用函數使用點號和冒號的區別
- Lua中的函數(function)、可變參數、局部函數、尾遞歸優化等實例講解
- Lua中的函數知識總結
- Lua中的一些常用函數庫實例講解
- Lua字符串庫中的幾個重點函數介紹