所以我正在声明并初始化一个int数组:
static final int UN = 0;
int[] arr = new int[size];
for (int i = 0; i < size; i++) {
arr[i] = UN;
}
Run Code Online (Sandbox Code Playgroud)
说我这样做......
int[] arr = new int[5];
System.out.println(arr[0]);
Run Code Online (Sandbox Code Playgroud)
... 0将打印到标准输出.另外,如果我这样做:
static final int UN = 0;
int[] arr = new int[5];
System.out.println(arr[0]==UN);
Run Code Online (Sandbox Code Playgroud)
... true将打印到标准输出.那么Java默认情况下如何初始化我的数组呢?是否可以安全地假设默认初始化是将数组索引设置为0意味着我不必遍历数组并初始化它?
谢谢.
许多编程语言允许在列表中的最后一项之后的语法中使用尾随逗号.据说这是为了简化自动代码生成,这是可以理解的.
例如,以下是Java中完全合法的数组初始化(JLS 10.6数组初始化器):
int[] a = { 1, 2, 3, };
Run Code Online (Sandbox Code Playgroud)
我很好奇是否有人知道哪种语言首先允许使用这些尾随逗号.显然C 早在1985年便有它.
此外,如果有人知道现代编程语言的其他语法"特性",我也会非常有兴趣听到这些语言.我读到例如Perl和Python在语法的其他部分允许使用尾随逗号更加自由.
,数组初始化列表中使用的逗号项分隔符可以在C中结束列表,这在Kernighan&Ritchie编写的第二版C编程语言中提到.
例如
int c[] = { 1, 2, 3, };
Run Code Online (Sandbox Code Playgroud)
当列表很长时,这很方便,并且在添加项目时不希望更改/检查上一行
long long c[] = {
22342342344,
4324234234,
12312311111,
};
Run Code Online (Sandbox Code Playgroud)
但是在Java中我可以观察到两种不同的行为:
在Eclipse中,结束,被接受,而某些版本的maven编译器插件会抱怨并抛出编译错误.
但是,我没有在Flanagan的Java书中找到任何关于这种奇点的提及.
关于初始化项后结束逗号的官方规则是什么?
建议不要使用它吗?