Unity熱更新02-Lua基礎-06-Lua函式
阿新 • • 發佈:2020-10-28
print("**********函式************") --function 函式名() --end --a = function() --end print("**********無引數無返回值************") function F1() print("F1函式") end F1() --有點類似 C#中的 委託和事件 F2 = function() print("F2函式") end F2() print("**********有引數************") function F3(a) print(a) end F3(1) F3("123") F3(true) --如果你傳入的引數 和函式引數個數不匹配 --不會報錯 只會補空nil 或者 丟棄 F3() F3(1,2,3) print("**********有返回值************") function F4(a) return a, "123", true end --多返回值時 在前面申明多個變數來接取即可 --如果變數不夠 不影響 值接取對應位置的返回值 --如果變數多了 不應 直接賦nil temp, temp2, temp3, temp4 = F4("1") print(temp) print(temp2) print(temp3) print(temp4) print("**********函式的型別************") --函式型別 就是 function F5 = function( ) print("123") end print(type(F5)) print("**********函式的過載************") --函式名相同 引數型別不同 或者引數個數不同 --lua中 函式不支援過載 --預設呼叫最後一個宣告的函式 function F6() print("Unity") end function F6(str) print(str) end F6() print("**********變長引數************") function F7( ... ) --變長引數使用 用一個表存起來 再用 arg = {...} for i=1,#arg do print(arg[i]) end end F7(1,"123",true,4,5,6) print("**********函式巢狀************") function F8() return function() print(123); end end f9 = F8() f9() --閉包 function F9(x) --改變傳入引數的生命週期 return function(y) return x + y end end f10 = F9(10) print(f10(5))