Arrays Xtend:在for循环中将元素添加到数组中
我正在尝试在Xtend中执行最简单的操作,但不知道如何执行。我想在for循环内的Arrays Xtend:在for循环中将元素添加到数组中,arrays,xtend,Arrays,Xtend,我正在尝试在Xtend中执行最简单的操作,但不知道如何执行。我想在for循环内的double[]数组中添加一个double值 例如: def do(EList<MyObject> list) { var double[] array = newDoubleArrayOfSize(list.size); for (i : 0 ..< list.size) { array[i] = list.get(i).myValue; } ret
double[]
数组中添加一个double
值
例如:
def do(EList<MyObject> list) {
var double[] array = newDoubleArrayOfSize(list.size);
for (i : 0 ..< list.size) {
array[i] = list.get(i).myValue;
}
return array;
}
def do(列表列表){
var double[]array=newDoubleArrayOfSize(list.size);
对于(i:0..<列表大小){
数组[i]=list.get(i).myValue;
}
返回数组;
}
第四行显示一个错误,因为我不能使用数组[I]=…
如何在Xtend中实现这一点?在《用户指南》中找不到任何内容。Xtend使用不同的(“类似列表”)语法来访问数组元素,有关详细信息,请参阅:
检索和设置数组的值是通过扩展来完成的
方法get(int)和set(int,T),它们专门为
数组和直接转换为等效的本机Java代码
myArray[int]
因此,您的代码应该是:
def method(EList<MyObject> list) {
var double[] array = newDoubleArrayOfSize(list.size);
for (i : 0 ..< list.size) {
array.set(i, list.get(i).myValue);
}
return array;
}
另一种选择是以更实用的风格编写方法。如果可以将EList
替换为List
(或EList
扩展/实现List
),则可以简单地编写:
def double[] method(List<MyObject> list) {
list.map[myValue]
}
def double[]方法(列表){
list.map[myValue]
}
在这种情况下,必须将返回类型显式声明为double[]
,否则它将被推断为List
(还有一件事:通常情况下,集合比数组更受欢迎,因为它们更灵活,API更丰富,Xtend也有一些其他的优点。)非常感谢Snorbi,这对我帮助很大!
def double[] method(List<MyObject> list) {
list.map[myValue]
}