我正在将一个Java程序翻译成X10,我遇到了一些问题,我想知道是否有人能帮我翻译。
下面是我想要翻译的一段Java代码:
ArrayList<Posting>[] list = new ArrayList[this.V];
for (int k=0; k<this.V; ++k) {
list[k] = new ArrayList<Posting>();
}下面是我在X10中所做的事情:
var list:ArrayList[Posting]=new ArrayList[Posting](this.V);
for (var k:int=0; k<this.V; ++k) {
list(k)=new ArrayList[Posting]();
}生成一堆错误语句的代码行是这样的:
list(k)=new ArrayList[Posting]();对于我做错了什么,有什么建议或者解释吗?
发布于 2013-04-18 14:48:27
同意真实的观点。您需要将list定义为类似Rail[ArrayList[Posting]]的内容:
var list:Rail[ArrayList[Posting]]=new Rail[ArrayList[Posting]](this.V);此外,由于X10支持不可变变量的类型推断,因此使用val而不是var并完全省略类型声明通常更好:
val list = new Rail[ArrayList[Posting]](this.V);发布于 2014-02-11 21:05:39
以下是应该为您工作的代码:
val list = new Rail[ArrayList[Posting]](this.V);
for (k in 1..(this.V)) {
list(k)=new ArrayList[Posting]();
}你也可以做
val list = new Rail[ArrayList[Posting]](this.V, (Long)=>new ArrayList[Temp]());即使用单个语句来创建已初始化的数组。
https://stackoverflow.com/questions/9659322
复制相似问题