如何在返回数据的同一行初始化一个新的 int 数组? [复制]

Posted

技术标签:

【中文标题】如何在返回数据的同一行初始化一个新的 int 数组? [复制]【英文标题】:How do you initialize a new int array on the same line you return data? [duplicate] 【发布时间】:2022-01-22 21:43:24 【问题描述】:

我知道如果你想返回存储在变量中的东西,就像返回所说的变量一样简单:

int jellyfish = 7;
return jellyfish;

如果你只是想返回与水母没有任何关系的数字 7,你可以写:

return 7;

但是这对数组怎么可能呢?到目前为止,我声明了要返回其值的数组,然后直接在下一行中返回该数组,但感觉就像在代码返回行上方设置变量“jellyfish”一样笨拙只打算返回 7。就像我会编码:

public int[] make2(int[] a, int[] b) 
int[] result = new int[2];
  if (a.length >= 2) 
    result[0] = a[0];
    result[1] = a[0];
    return result;
  
  return b;

尽管感觉好像只写这样的东西要简单得多:

public int[] make2(int[] a, int[] b) 
    int[] result = new int[2];
      if (a.length >= 2) 
        return a[0], a[1]; // <--- changed line
      
      return b;
    

我确定存在类似的东西,但到目前为止我测试过的任何东西都不会让我返回数组信息,而无需在 return 语句之前将其放入新的数组变量中。有没有一种我不知道的方法可以做到这一点,或者这是 Java 中的一个固有问题,我无能为力?

【问题讨论】:

【参考方案1】:

你可以这样试试。

public int[] make2(int[] a, int[] b) 
    if (a.length >= 2) 
        return new int[]a[0], a[1]; // <--- changed line
    
    return b;

【讨论】:

这正是我想要的。谢谢!【参考方案2】:

让我们一步一步来。您知道如何创建一个新的整数数组,因为您在此处的 sn-p 中完成了它

int[] result = new int[2];

那么你必须知道,有一个东西叫做Array Initializer,它可以让你在创建时初始化数组值。例如:

int[] result = new int[] 1, 2, 3 ;

因此,您的问题的解决方案(结合这些知识)如下:

return new int[] a[0], a[1] ;

创建并返回一个大小为 2 的新整数数组,其中包含 a[0]a[1] 的值。

【讨论】:

感谢您说得这么好,它对您有很大帮助!

以上是关于如何在返回数据的同一行初始化一个新的 int 数组? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在Ruby中的同一行中打印不同大小数组的数组元素

是否可以在一行中初始化新的 std::vector ?

如何使用模式列表在列中查找字符串并将匹配的模式添加到下一列的同一行

如何在 SQL 的同一行加入结果?

如何在 C++ 中的同一行中获取多个输入?

C中如何实现数组的传值引用