Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Что делать когда фун-ция возвращает массив (http://www.flasher.ru/forum/showthread.php?t=158473)

OnEg1n 20.06.2011 06:38

Что делать когда фун-ция возвращает массив
 
Доброго времени суток, господа флешеры.
Вопрос пустяковый, но я не могу сам допетрить. Смысл вот в чем. Допустим есть код:

Код AS3:

 
function name(): Array{
var a: Array = new Array();
//делаем какие-то действия
 
return a;
}

Я понимаю, что при вызове функции name() мне в ответ последует массив. Так вот как потом это массив словить. Я делаю так:

Код AS3:

 
var temp: Array = new Array();
var nameArray: Array = new Array();
temp.push(name());
for(i = 0; i < temp.length; i++){
  nameArray[i] = temp[0][i];
}

Но что-то мне подсказывает, что есть способ попроще...Подскажите, если кто в курсе

Gaen 20.06.2011 06:43

Код AS3:

nameArray = nameArray.concat(name());


BuKT 20.06.2011 07:10

Код AS3:

var temp: Array = new Array();
var nameArray: Array = new Array();
temp.push(name());
for(i = 0; i < temp.length; i++){
  nameArray[i] = temp[0][i];
}

В вашем случае temp.length == 1. Ибо у него ровно один элемент (вложенный массив) И фор ну никак не пройдёт по временному массиву больше одного раза.

А вообще очень странно. Разве нельзя сделать просто:
Код AS3:

var respArr:Array = name() as Array //Даже as Array - лишнее приведение типов, но я представить не могу, почему подобная конструкция не может работать без него.


Wolsh 20.06.2011 09:13

В вашем случае

Код AS3:

var nameArray:Array = name();

Добавлено через 1 минуту
Только метод name лучше все-же назвать по-другому.


Часовой пояс GMT +4, время: 20:31.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.