在我的 UDF 和组件中,我一直使用函数 local
作用域,而不是 var
关键字。我将本地范围模式设置为“始终”服务器范围,因此我没有显式使用 local 关键字(除非我处于字段名称冲突的 cfquery 循环内)。我是否应该注意任何副作用,或者我是否可以始终将 var 和 local 视为等效?
我不关心这是否是良好的编程实践或向后兼容或良好的风格或其他“无形”原因。我具体询问它是否会影响性能、内存使用、线程安全或对应用程序的其他影响。
我在共享范围(例如应用程序和 session )中缓存了许多函数和组件,因此我特别好奇这是否会暴露通常不会看到的差异。我记得当我执行此操作时,CFMX6.1 曾经疯狂地泄漏内存,但我没有注意到 Railo 下有任何类似的效果。
这个问题与 Railo 3.3 和 4.0+ 相关,因为我运行着不同的版本。
最佳答案
它们不太可能以相同的方式实现。但是,只要您确保局部变量没有通过使用 var 或局部作用域从函数中泄漏出来,那么就没有问题。任何性能差异都可以忽略不计,不值得您担心。我还想补充一点,根据我的经验,Railo 是一款组合得非常好的产品,因此如果这两种方法中的任何一种出现内存问题,我都会感到非常惊讶。
关于variables - Railo 中的 var 和局部作用域变量之间有明显的区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20276944/