将Java转换为X10



我正在将一个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]();

关于我做错了什么,有什么建议和解释吗?

同意事实。您需要将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);

以下是适用于您的代码:

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]());

即使用单个语句来创建初始化的数组。

相关内容

  • 没有找到相关文章

最新更新