5 回答

肥皂起泡泡
TA貢獻1829條經驗 獲得超6個贊
本身也是閉包的一個演示例子
首先你要看newCounter這個函數的返回值
它的返回值 返回的不是一個具體的數字,而是一個函數
所以 如果直接print這個函數 得到的是function xxxx
當調用這個返回的函數才能得到這個值

千巷貓影
TA貢獻1829條經驗 獲得超7個贊
冒號本身是一個語法糖
當一個table內的方法被以冒號調用的話表示把這個table作為第一個參數傳進去
寫個demo
123456 | local t = {} t.fun = function(tab,v) print(tab,v) end t:fun(123) t.fun(t,123) |
這2個是相同的
所以根據你的function判斷是否需要傳入table來判斷是否需要用冒號

瀟瀟雨雨
TA貢獻1833條經驗 獲得超4個贊
function test(a, b)
return a+b, a-b
end
local m, n = test(5, 3)
print(m)
print(n)
輸出結果為:
8
2

慕哥9229398
TA貢獻1877條經驗 獲得超6個贊
testFun是入口函數,也就是執行是從這個函數開始的,這個函數有兩個參數,一個是表tab,一個是函數fun,它們都是形參;當調用它時會傳入兩個實參,它們的名稱不一定和形參的名字相同。
f1是另一個函數,它是testFun函數中第二個參數的實參,也就是實際執行時是執行的這個函數
fun(k, v)在testFun傳入實參后變成了f1(k, v)
添加回答
舉報
0/150
提交
取消