你如何返回一个取消引用的数组?
Posted
技术标签:
【中文标题】你如何返回一个取消引用的数组?【英文标题】:How do you return a dereferenced array? 【发布时间】:2012-10-04 04:56:11 【问题描述】:我希望执行以下操作:
public static int[] plusOneLengthFour(int[] arr)
return arr[0]+1,arr[1]+1,arr[2]+1,arr[3]+1;
但在编译时,我收到以下错误:
TestClass.java:5: error: illegal start of expression
return arr[0]+1,arr[1]+1,arr[2]+1,arr[3]+1;
这里有什么问题?
【问题讨论】:
你想返回你的数组,它的元素增加 1 吗? 【参考方案1】:您只需在您的 return 语句中添加 new int[]
即可编译它。如果你只是从花括号开始,它不知道你想要什么。请注意,这将返回一个 new 数组,而原始 arr
将具有相同的值。
即,
return new int[] arr[0]+1,arr[1]+1,arr[2]+1,arr[3]+1;
【讨论】:
哦,我不知道!非常感谢您的早期和简单的回复!【参考方案2】:如果要修改输入数组,则不需要返回任何内容:
public static void plusOneLengthFour(int[] arr)
arr[0]++;
arr[1]++;
arr[2]++;
arr[3]++;
如果要创建一个新数组,包含输入数组的前 4 个元素递增 1,那么要使用的代码是
public static int[] plusOneLengthFour(int[] arr)
return new int[] arr[0] + 1, arr[1] + 1, arr[2] + 1, arr[3] + 1;
【讨论】:
这行得通!谢谢!我让 Jeff 的答案正确,因为他是第一个!【参考方案3】:你应该使用下面的语句来返回数组。
return new int[] arr[0] + 1, arr[1] + 1, arr[2] + 1, arr[3] + 1;
【讨论】:
这行得通!谢谢!我让 Jeff 的答案正确,因为他是第一个!【参考方案4】:我猜你需要返回你的数组,数组元素递增 1。你可以这样做:-
public static void plusOneLengthFour(int[] arr)
for (int i = 0; i < arr.length; i++)
arr[i] = arr[i] + 1;
其实你不需要返回数组。更改将反映在原始数组中。
【讨论】:
这只是我当场想到的一个示例程序。我试图做的是返回一个数组而不提前为其创建引用。感谢您的回答!【参考方案5】:你可以让你的方法更灵活
public static int[] addNumberToItems(int[] array, int valueToAdd)
for (int i = 0; i < array.length; i++)
array[i] += valueToAdd;
return array;
这个常量返回数组的长度:
array.length
【讨论】:
这只是我当场想到的一个示例程序。我试图做的是返回一个数组而不提前为其创建引用。感谢您的回答!以上是关于你如何返回一个取消引用的数组?的主要内容,如果未能解决你的问题,请参考以下文章
从PHP版本7.2.0开始,“数组解除引用”如何处理类型为boolean / integer / float / string的标量值?