【问题标题】:Proper way of declaring an array [duplicate]声明数组的正确方法[重复]
【发布时间】:2014-01-15 00:11:33
【问题描述】:

我已经看到,当您像这样声明数组时,它们会起作用:

int[] myarray = {2,4,6,8,10}; //Notice the brackets are with the type

当你这样声明它们时:

int myarray[] = {2,4,6,8,10}; //Here the brackets are with the array name

那么哪一种是声明数组的正确方法,第一种和第二种之间有什么区别(如果有的话)。

谢谢。

【问题讨论】:

  • 两者是等价的。我更喜欢第一而不是第二。
  • 它们是一样的。习惯 C 的人更喜欢后者。

标签: java arrays


【解决方案1】:

根本没有功能上的区别。但是,将括号与类型放在一起被认为是一种好习惯:

int[] myarray = {2,4,6,8,10};

【讨论】:

    【解决方案2】:

    除了prefer第一个声明没有区别。

    您也可以将括号放在数组名称之后:

    // this form is discouraged
    float anArrayOfFloats[];

    然而, 惯例不鼓励这种形式;括号标识数组类型 并且应该出现类型名称。

    【讨论】:

      【解决方案3】:

      您可以在一个声明中声明一个 int、一个一维和一个二维数组:

      int i, oneD[], twoD[][];
      

      除了这个用例之外,您应该更喜欢括号的早期放置,尽管就 Java 规范而言,两者都是正确的

      【讨论】:

      • 虽然它在编译的意义上是正确的,但这种类型的声明违反了official java coding conventions, section 6.1
      • @Alderath 尽管他们(大部分)对这一点是正确的,但该特定出版物包含了许多他们头脑正常的人都不会遵循的建议。比如在方法的顶部声明你所有的局部变量,K&R C-style。
      【解决方案4】:

      它们在效果上是相同的。

      int myArray[] 的替代声明是对 C 的回归,但类型是 int[],因此首选第一个版本 int[] myArray

      【讨论】:

        【解决方案5】:

        没有区别。这只是数组声明中的Syntactic sugar

        第一种类型可能不太容易混淆。

        【讨论】:

          猜你喜欢
          • 2023-03-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-09-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多