工程中对于默认参数使用的注意

这个主要是前几天在和队友一起合作写代码时遇到的一个bug,具体可以简化为我写了一个函数A,这个A中有一个参数是默认参数,我之前是在外部调用了这个函数,其实是对这个默认参数传入了变量的。但是后来队友在补充修改的时候,在他的那边的B函数中也调用了我的函数A,但是因为函数A不是他完成的,然后对于参数的含义不是很理解,然后最后一个参数因为是默认参数,所以不传参也不会出现报错等问题,所以就导致他在B函数中调用我的A函数时没有传参,始终都是默认参数。

这就导致了我后来pull以后运行发现无论我怎么改动传入A函数的中的参数结果都不会变(在外部也有调用A函数的部分),然后我就一直对着外部的这个A函数纠结,然后对A函数本身的实现debug,纠结了好久最后才发现是B函数中调用了A函数结果没有对这个默认参数传参,导致了结果一直不会变

这个事情主要是提醒之后在编写函数时,使用默认参数的时候要注意,防止其他人调用此函数时没有注意到,默认参数可以使用一个有初始值的外部变量传参代替。之后就是要注意做好模块化测试,防止自己的模块出现问题而导致其他人在运行的时候出现问题而摸不到头脑。