“怎么是这个……”
这是当年羽然科技公司实现时的疏忽在某个函数中,他们声明了一个局部变量,这个变量和同一命名空间的另一个变量名字极为相似,但命名风格(首字母是否大写之类)和其他代码不太一致。
当时他们是为了规避不同作用域的命名冲突才这样命名的。
但到了后面,他们仍然习惯性的用了“正常”的命名,也可能是选错了编辑器自动提示选项。
这就相当于丢开局部变量,用了命名空间的外部变量;但从上下文看,这里就不应该碰外部那个同名变量。
用伪码表示大概是这样
ss&bsp&bspoess&bsp&bsp{
&bsp&bsppakageaites&bsp&bsp=&bsp&bspull
&bsp&bspvoid&bsp&bspfua(arg){
itial&bsp&bsppakageaites
&bsp&bsppakageaites&bsp&bsp=&bsp&bsparg
other
}
&bsp&bspstrg&bsp&bspfua{
pakageaites&bsp&bsp=&bsp&bspextratpure(pakageaites)
do&bsp&bspsth