2012-01-20 99 views

回答

12

语义没有区别。两种语法意思都一样。一些提取物从JLS §10.2

的[]可能显示为在 声明的开头所述类型的部分,或作为特定变量, 的说明符的一部分或这两者,如在这个例子中:

byte[] rowvector, colvector, matrix[]; 

此声明等效于:

byte rowvector[], colvector[], matrix[][]; 

然而,因为Voo在下面的注释中声明,当在单个语句中声明几个数组时,可能会对这些声明产生一些棘手的混淆。

+0

谢谢,我也这么认为,但必须确保。 – shift66

+2

虽然每行定义多个变量(引用的部分已经提示),但它们有区别。即'int a [],b;'与'int [] a,b;'不一样,这可能是意想不到的。 Imho最好不要使用第二个变体,因为它可能会导致混淆。这实际上是来自C和iirc Bloch的遗产,或者后来说他遗憾地将其包含在语言中 - 但可能是错误的。 – Voo

+0

@Voo:好的评论,我还没有想到。虽然我通常不认为在一行中声明几个变量是一个好主意,尤其是如果它们的类型与本示例中不一样... –

7

没有区别。

这只是从C过渡到更简单的语法糖。在Java int[] x是首选(和推荐)符号。

1

没有,这只是一个品味问题。有些人更喜欢把它放在聚合类型的旁边(因为觉得它是类型的一部分),另一些人则倾向于将它与变量名放在一起(因为它更接近访问语法)。

相关问题