数组字面量仅用于声明

本文关键字:用于 声明 数组 | 更新日期: 2023-09-27 18:06:31

int[] arr = {1, 2, 3};
arr = {1, 2, 3} //Error
arr = new int[] {1, 2, 3}; //No Error

我的问题是,为什么会这样?我是说第二行和第三行有什么区别?

数组字面量仅用于声明

这就是java或c#的工作方式,伙计,这实在不能抱怨。如果我们进入编程语言语义,第2行引入了一些不太理想的模糊性,如果我们考虑真正高级的东西,如解析树,需要为像第2行这样的语句构造,我们就遇到了大麻烦。

如果你喜欢,读一些关于解析器的东西链接到解析树