在lua中,函數(shù)是一種“第一類值”,它們具有特定的詞法域。
第一類值:表示在lua中,函數(shù)與其他傳統(tǒng)類型的值(數(shù)字和字符串)具有相同的權(quán)利,函數(shù)可以存儲(chǔ)到變量中(無論全局變量還是局部變量)或者是table中,可以作為實(shí)參傳遞給其他函數(shù),還可以作為其他函數(shù)的返回值。
詞法域:是指一個(gè)函數(shù)可以嵌套在另一個(gè)函數(shù)中。內(nèi)部的函數(shù)可以訪問外部函數(shù)中的變量。
看例子代碼:
復(fù)制代碼 代碼如下:
do
function foo(a, b, c)
print(a, b, c);
end
local c = foo;
c(2, 3, 4);
end
輸出的結(jié)果是:2, 3, 4
例子:
復(fù)制代碼 代碼如下:
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
在上面的例子中,
復(fù)制代碼 代碼如下:
c = function(x) return (math.sin(x + 0.1) -math.sin(x)) / 0.01
因?yàn)椋?br />
復(fù)制代碼 代碼如下:
local c = derivative(math.sin)
將:
復(fù)制代碼 代碼如下:
f = math.sin
您可能感興趣的文章:- Lua中的模塊與module函數(shù)詳解
- Lua中調(diào)用函數(shù)使用點(diǎn)號和冒號的區(qū)別
- Lua中的函數(shù)(function)、可變參數(shù)、局部函數(shù)、尾遞歸優(yōu)化等實(shí)例講解
- Lua中的函數(shù)知識總結(jié)
- Lua中的一些常用函數(shù)庫實(shí)例講解
- Lua字符串庫中的幾個(gè)重點(diǎn)函數(shù)介紹