这里有类似的问题,但他们并没有真正回答我的问题。
所以我很好奇为什么我们不能在Java中声明同一个变量两次?
例如:
int a = 4;
int a = 6;
这在 Java 中实际上行不通。
然而在 javascript 中,这实际上是有效的:
var a = 1;
var a = 2;
在javascript中,人们说声明立即被移到开头,这样它就变成了这样:
var a;
a = 1;
a = 2;
简单、明显的答案是因为编译器不允许你这么做。但现在让我们更进一步——为什么需要这样做?
这里的原因是两次声明一个变量是错误的标志。它通常意味着以下三件事之一:
- 您的变量名称不够具体。也许你用过
int length
两次它就会对你吠叫。例如,您可能应该让您的名称更具体地说明它所包含的长度int originalLength
and int extendedLength
当复制数组或其他东西时。
- 你的方法太长了。为什么你的方法如此长以至于需要两个相同的变量?您可能会重复代码,因此请将其合并到一个方法中。
- 你还没有真正想好你的方法。这是第 2 点的扩展,但事实是您应该在编写方法之前决定它的用途。如果您添加一个已经存在的变量,则可能意味着您尚未确定该方法到底在做什么。
其中每一个都是主要的代码味道,并且可能是未来错误的根源。 (而且就在不久的将来!)在每种情况下,允许您声明一个变量两次都会导致歧义,如果它阻止您进行编译,则可以避免这种歧义。
现在,这是否意味着没有可能会带来好处的情况?当然。可能有。也许您已经了解了所有基础,并且绝对确定可以重用该变量。在这种情况下,只需重新分配它而不是重新声明它。就我个人而言,我不建议这样做,但如果你想的话,射门是你的脚。 :)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)