Перевод Java в X10 - PullRequest
       15

Перевод Java в X10

3 голосов
/ 12 марта 2012

Я перевожу 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]();

Любые предложения иможет быть объяснение того, что я делаю не так?

Ответы [ 2 ]

1 голос
/ 11 февраля 2014

Вот код, который должен работать для вас:

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

т.е. используйте один оператор для создания инициализированного массива.

1 голос
/ 18 апреля 2013

Согласен с Истиной.Вам нужно определить 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...