关于这句代码
local ok, app = xpcall(require, err_log, "app." .. app_name)
xpcall中有三个参数,而我查了函数原型:
xpcall (f, err)
它只有两个参数。当实参数量大于形参的数量的时候,多余的参数会被忽略。那是否意味着执行的时候,最后第三个参数(app.. app_name)被抛弃了?
如果不是被抛弃了的话,那那三个参数中 是如何对应原型中的f和err的?
上面三个参数对应如下:
xpcall(被执行的函数,处理错误的函数,传给被执行函数的各个参数...)
有点类似闭包:
伪代码:
function xpcall(func_to_call, func_error, ...)
return func_to_call(...)
//
end