關于這句代碼
local ok, app = xpcall(require, err_log, "app." .. app_name)
xpcall中有三個參數(shù)送巡,而我查了函數(shù)原型:
xpcall (f, err)
它只有兩個參數(shù)。當實參數(shù)量大于形參的數(shù)量的時候偎行,多余的參數(shù)會被忽略腔剂。那是否意味著執(zhí)行的時候邑时,最后第三個參數(shù)(app.. app_name)被拋棄了惹挟?
如果不是被拋棄了的話拆魏,那那三個參數(shù)中 是如何對應原型中的f和err的?
上面三個參數(shù)對應如下:
xpcall(被執(zhí)行的函數(shù)雪猪,處理錯誤的函數(shù),傳給被執(zhí)行函數(shù)的各個參數(shù)...)
有點類似閉包:
偽代碼:
function xpcall(func_to_call, func_error, ...)
return func_to_call(...)
//
end