5 回答

TA貢獻(xiàn)1802條經(jīng)驗 獲得超4個贊
本身也是閉包的一個演示例子
首先你要看newCounter這個函數(shù)的返回值
它的返回值 返回的不是一個具體的數(shù)字,而是一個函數(shù)
所以 如果直接print這個函數(shù) 得到的是function xxxx
當(dāng)調(diào)用這個返回的函數(shù)才能得到這個值

TA貢獻(xiàn)1775條經(jīng)驗 獲得超8個贊
冒號本身是一個語法糖
當(dāng)一個table內(nèi)的方法被以冒號調(diào)用的話表示把這個table作為第一個參數(shù)傳進(jìn)去
寫個demo
123456 | local t = {} t.fun = function(tab,v) print(tab,v) end t:fun(123) t.fun(t,123) |
這2個是相同的
所以根據(jù)你的function判斷是否需要傳入table來判斷是否需要用冒號

TA貢獻(xiàn)1850條經(jīng)驗 獲得超11個贊

TA貢獻(xiàn)1815條經(jīng)驗 獲得超6個贊
function test(a, b)
return a+b, a-b
end
local m, n = test(5, 3)
print(m)
print(n)
輸出結(jié)果為:
8
2

TA貢獻(xiàn)1890條經(jīng)驗 獲得超9個贊
testFun是入口函數(shù),也就是執(zhí)行是從這個函數(shù)開始的,這個函數(shù)有兩個參數(shù),一個是表tab,一個是函數(shù)fun,它們都是形參;當(dāng)調(diào)用它時會傳入兩個實參,它們的名稱不一定和形參的名字相同。
f1是另一個函數(shù),它是testFun函數(shù)中第二個參數(shù)的實參,也就是實際執(zhí)行時是執(zhí)行的這個函數(shù)
fun(k, v)在testFun傳入實參后變成了f1(k, v)
添加回答
舉報