是否有客观的,可支持的软件工程论据来支持或反对在函数主体中修改按值参数的值?
我团队经常发生的争吵(主要是很好玩)是是否应修改按值传递的参数。团队中的几个成员坚决决不应该将参数分配给它们,以便始终可以查询最初传递给该函数的值。我不同意并认为参数不过是通过调用方法的语法初始化的局部变量。如果按值参数的原始值很重要,则可以声明局部变量以显式存储该值。我不相信我们两个人都能很好地支持我们的立场。
这是无法解决的宗教冲突,还是在任一方向上都有好的客观的软件工程理由?
注意:原则问题仍然存在,无论特定语言的实现细节如何。例如,在JavaScript中,参数列表始终是动态的,参数可以视为从arguments
对象初始化局部变量的语法糖。即使这样,也可以将参数声明的标识符视为“特殊”标识符,因为它们仍然捕获信息从调用者到被叫者的传递。