Actionscript 3 临时变量
我想知道当我写这样一个临时变量时有什么不同(这些只是示例): 版本1Actionscript 3 临时变量,actionscript-3,variables,temp,Actionscript 3,Variables,Temp,我想知道当我写这样一个临时变量时有什么不同(这些只是示例): 版本1 for each tempEnemy in enemyManager.enemies { var tempX:int = tempEnemy.x; } 或者这个: 版本2 for each tempEnemy in enemyManager.enemies { tempEnemy.oldX = tempEnemy.x; } 什么是对与错?目前我写的是第2版,我不确定是否应该改成第1版。有人能帮我解决这个问题吗?我知道大多数
for each tempEnemy in enemyManager.enemies {
var tempX:int = tempEnemy.x;
}
或者这个:
版本2
for each tempEnemy in enemyManager.enemies {
tempEnemy.oldX = tempEnemy.x;
}
什么是对与错?目前我写的是第2版,我不确定是否应该改成第1版。有人能帮我解决这个问题吗?我知道大多数开发人员都像版本1一样编写,但我有点困惑,因为我完全不知道版本1。如果我使用版本1,这是否意味着我的值显式存储在每个周期中清除的临时变量中 在第1版声明中:
var tempX:int
定义一个变量,该变量的持续时间仅与for(或for each)循环的迭代时间相同。定义每个迭代tempX
,并从对象中给定一个值,最后将其留给垃圾收集
在版本2中,您引用了两个附加到名为tempfound
的临时变量所引用的敌军
对象的变量
在这两个版本中,对敌方
对象tempbound的引用被重新分配给下一次迭代的敌方
对象
每种方法都有其优点。从内存的角度来看,版本2可能更好,因为它反复更改现有变量,而不是创建一个在每次迭代结束时丢弃的新变量。另一方面,版本1不要求您在其类变量中定义oldX
,如果没有这些类型的变量,这些变量通常会变得非常糟糕
代码的最佳实践是基于(a)与其他程序员一起工作,他们需要能够阅读和理解代码,以及(b)离开一个项目,稍后再回来,您需要能够阅读和理解自己的代码。对于不打算共享的短期项目,版本2是可以的(并且可能更节省内存),但任何大型项目都应该使用类似版本1的东西
另一个需要考虑的问题是,除了定义(设置)该变量的函数之外,是否还要在其他任何地方使用该变量?如果不是,则不需要将其存储在对象中,该对象再次指向版本1。在版本1中,声明:
var tempX:int
定义一个变量,该变量的持续时间仅与for(或for each)循环的迭代时间相同。定义每个迭代tempX
,并从对象中给定一个值,最后将其留给垃圾收集
在版本2中,您引用了两个附加到名为tempfound
的临时变量所引用的敌军
对象的变量
在这两个版本中,对敌方
对象tempbound的引用被重新分配给下一次迭代的敌方
对象
每种方法都有其优点。从内存的角度来看,版本2可能更好,因为它反复更改现有变量,而不是创建一个在每次迭代结束时丢弃的新变量。另一方面,版本1不要求您在其类变量中定义oldX
,如果没有这些类型的变量,这些变量通常会变得非常糟糕
代码的最佳实践是基于(a)与其他程序员一起工作,他们需要能够阅读和理解代码,以及(b)离开一个项目,稍后再回来,您需要能够阅读和理解自己的代码。对于不打算共享的短期项目,版本2是可以的(并且可能更节省内存),但任何大型项目都应该使用类似版本1的东西
另一个需要考虑的问题是,除了定义(设置)该变量的函数之外,是否还要在其他任何地方使用该变量?如果不是,则不需要将其存储在对象中,该对象再次指向版本1。另外。。。
添加:variableType(int、String、Number等)有助于代码提示和调试。另外。。。
添加:variableType(int、String、Number等)有助于代码提示和调试。非常感谢!这个答案非常详细,而且更容易回答:)现在请回答您的问题:是的,在其他一些情况下也需要名为tempDebuy.oldX的临时变量(但并不总是如此)。它有很多代码,我不打算把它的一部分给其他开发人员,因为我现在自己工作。非常感谢!这个答案非常详细,而且更容易回答:)现在请回答您的问题:是的,在其他一些情况下也需要名为tempDebuy.oldX的临时变量(但并不总是如此)。它有很多代码,我不打算把它的一部分给其他开发人员,因为我现在自己工作。