java中的这两个数组声明语法之间有什么区别吗?
int[] variableName;
和
int variableName[];
哪一个更受欢迎?
答案 0 :(得分:14)
尽管两种语法都是等效的,但首选int[] variableName;
语法。允许int variableName[];
语法只是为了让所有C / C ++程序员都能过渡到Java。
有人可能会说int[] x
明确指出整数数组是x 的类型,而在int x[]
中,实际类型分为两部分,一部分在前在x
变量之后,像 integer这样的读数是变量x的类型,它是一个数组,使得声明的可读性降低,并且可能使新手感到困惑。
如果数组具有更多维度,则可读性问题会加剧,例如,所有这些声明都是等效且有效的:
int x[][][];
int[] x[][];
int[][] x[];
int[][][] x; // this one is the easiest to read!
另请注意,相同的注意事项适用于所有这些有效的等效方法声明(返回类型在所有情况下都相同) - 但最后一个更容易阅读:
int m() [][][] {return null;}
int[] m() [][] {return null;}
int[][] m() [] {return null;}
int[][][] m() {return null;} // this one is the easiest to read!
答案 1 :(得分:4)
后缀语法必不可少的唯一情况是非必要的用例:
class ArrayShowcase {
private int i, ints[], intints[][];
}
我们需要这样的声明吗?我想,我们可以没有他们。在我的专业人士写的数十万行代码中,我从未需要它。
答案 2 :(得分:1)
如前所述,它们都是相同的,第一个是首选。我想补充说,与各自的用法保持一致也很重要。如果更改使用其中一个代码库的代码库,请遵循相同的约定。
答案 3 :(得分:1)
答案 4 :(得分:0)
它们都意味着相同的东西,因此在句法上没有区别。但是,我见过开发人员使用其中一种。
答案 5 :(得分:0)
我会使用int [] var,因为它更明确。它告诉读者它是一个int数组。如果变量名旁边有[],则用户必须扫描整行,以查看该数组的类型。就我个人而言(我认识的大多数java程序员)都使用int []
答案 6 :(得分:0)
对于人类阅读来说,区别在于概念。他们定义相同的东西,但
int[] variableName
使variableName
的类型与
int variableName[]
其中,声明数组变量的类型为int
。