解释下面的lua函数function Aid return functionid endend假如这个函数属于module的一个区域块当引擎C++函数调用传参的时候为什么C++引擎传的参数不会覆盖掉这个区域块里面的形参
这个Lua函数定义了一个函数A,函数A接受一个参数id,并返回一个函数。这个返回的函数也接受一个参数id,但是在函数体内并没有任何操作。
对于函数A的参数id和返回的函数的参数id,它们的作用域是不同的。在Lua中,函数的参数作用域仅限于函数内部,即函数体内部的id变量只在函数体内部有效。因此,C++引擎传递的参数不会覆盖函数体内部的形参,因为它们处于不同的作用域。
具体来说,当C++引擎调用Lua函数A并传递参数id时,这个参数只会在函数A内部有效,在返回的函数中并不会直接影响到函数体内部的形参id。如果在返回的函数中想要使用外部传递的id参数,可以通过闭包的方式来引用函数A中的id参数。
原文地址: http://www.cveoy.top/t/topic/hyT0 著作权归作者所有。请勿转载和采集!