Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Как работает это выражение?!


Автор: kaa 18.12.2011, 22:28
В общем по сабжу...
Привет кода из учебных тестов по SCJP.

Код

int[] arr = new int[][]{{0}}[0];


КАК?!
Как это читать?
И ведь это работает - компилируется уж точно smile
Я весь мозг сломал. пытаясь для себя проговорить , кто на ком тут стоит, но так и не смог понять.
Может быть из гуру местных кто-нить объяснит?

Я просто не особо много с таким трешем работал. Может что-то очевидное упустил. в общем буду дико благодарен за объяснение логики работы данного выражения smile

Автор: witex 18.12.2011, 23:37
new int[][];

Это двухмерный массив.
{{0}} сразу  забиваем двухмерный массив данными.
если смотреть построчно.
int[] array = new int[1][1];
int[] firstRow  = new int[1];
firstRow[0] = 0;

int[] arr = array[0];
Это если разделить построчно всю строчку.

Автор: kaa 19.12.2011, 14:57
witex, спасибо за разъяснение!

Как-то не подумал, что у массивах цепочку вызовов можно делать smile

Автор: _Y_ 19.12.2011, 22:43
А нельзя ли разжевать поподробнее почему и как эту строку можно (и нужно) представить именно таким образом?

Я лично не сторонник цепочечных записей, но изредка нужно что-то странное. Да и чужой код понимать полезно. smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)