Форум программистов, компьютерный форум, киберфорум
Наши страницы
ActionScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Abegnale
0 / 0 / 0
Регистрация: 31.03.2013
Сообщений: 15
1

Неопределенное количество аргументов

06.08.2014, 12:13. Просмотров 895. Ответов 5
Метки нет (Все метки)

добрый день. читаю книгу Action Script 3.0 Сборник рецептов от Джои Лотт и компании. Пытаюсь опробовать его рецепт номер 1.14, где он передает в функцию неопределенное количество аргументов. Вот код:
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
public function Main() {
            
            var average: Number = withPar(2, 5, 4, 13);
            trace ("average = " + average);
        }
        
        function withPar(): Number {
            var summ=0;
            for (var i = 0; i < arguments.length; i++) {
                summ+=arguments[i];
                }
            return summ/arguments.length;   
        }
Ошибка говорит о неверном количестве аргументов, ожидает не больше 0. Что не так? прилагаю скрин из книги с рецептом.
Неопределенное количество аргументов
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.08.2014, 12:13
Ответы с готовыми решениями:

Динамическое количество аргументов в методе
Кто нибудь наверняка может мне помочь, я совсем забыл как объявить метод, чтобы в него можно было...

Неопределенное количество столбцов таблицы представления
Всем привет. Модель у меня заполняется из json строки, где для каждого элемента передаются всякие...

Странное расположение в памяти аргументов функции с неизвестным количество аргументов
Не могу понять, почему такая программа не работает, выдавая segmentation fault после распечатки...

Как принять в функции main неопределенное количество параметров?
Добрый день) Нужно что бы функция main принимала от одного до трех параметров в виде маcсива...

Как создать неопределенное (т.е. не ограниченное в коде) количество экземпляров класса?
Если кратко, опишу задачу так. Есть баланс предприятия - &quot;срез&quot; показателей, который...

5
Onisi_s
1 / 0 / 2
Регистрация: 06.08.2014
Сообщений: 7
06.08.2014, 12:46 2
Лучший ответ Сообщение было отмечено Abegnale как решение

Решение

Попробуй так.
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
public function Main() {
            
            var average: Number = withPar(2, 5, 4, 13);
            trace ("average = " + average);
        }
        
        function withPar(...arguments): Number {
            var summ=0;
            for (var i = 0; i < arguments.length; i++) {
                summ+=arguments[i];
                }
            return summ/arguments.length;   
        }
Здесь справка по параметрам функции.
http://help.adobe.com/ru_RU/ActionSc...0204-7f56.html
0
Abegnale
0 / 0 / 0
Регистрация: 31.03.2013
Сообщений: 15
06.08.2014, 13:48  [ТС] 3
спасибо. с 2009 года синтаксис менялся чтоли? Почему Лотт так написал?
0
Theoryofgames
253 / 237 / 50
Регистрация: 20.12.2011
Сообщений: 707
06.08.2014, 15:21 4
Цитата Сообщение от Abegnale Посмотреть сообщение
Почему Лотт так написал?
Человек мог и ошибиться. Рекомендую все вопросы уточнять в официальной документации
Например вот описание того, как использовать arguments.

Добавлено через 6 минут
Проверил, можно и без указания массива агруметов писать (никогда так не делал), но вообще в официальных доках они рекомендуют все-таки явно указывать массив агрументов.
ActionScript 3
1
2
3
4
5
6
7
8
9
var func:Function = function() : Number
{
  var sum:int = 0;
  var amount:int = arguments.length;
  for each (var elem:int in arguments) sum += elem;
  return sum / amount;
}
trace(func(1, 2, 3));
trace(func(2, 4, 5, 6));
А вообще лучше не задавать функции с динамическим кол-вом параметор, так как они выполнябтся дольше, чем обычные
1
TanaTiX
Модератор
2796 / 1650 / 168
Регистрация: 19.02.2011
Сообщений: 6,007
Завершенные тесты: 2
07.08.2014, 12:11 5
Цитата Сообщение от Theoryofgames Посмотреть сообщение
А вообще лучше не задавать функции с динамическим кол-вом параметор, так как они выполнябтся дольше, чем обычные
Это зависит от задачи. И не думаю, что если где и будет узкое место в программе, то за счет количества аргументов в методах.
0
Theoryofgames
253 / 237 / 50
Регистрация: 20.12.2011
Сообщений: 707
07.08.2014, 12:33 6
Цитата Сообщение от TanaTiX Посмотреть сообщение
Это зависит от задачи. И не думаю, что если где и будет узкое место в программе, то за счет количества аргументов в методах.
Естественно, просто имел ввиду, что если способ обойтись без этого (не изобретая при этом велосипеды и костыли) - лучше его использоваться.
0
07.08.2014, 12:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.08.2014, 12:33

Неопределённое количество аргументов
Задача в следующем - написать функцию которая в себе вызывают функцию, которая возвращает...

Бесконечное количество аргументов
#include&lt;iostream&gt; #include&lt;conio.h&gt; using namespace std; void writeln(int count, ...) { ...

Макросы и переменное количество аргументов
Доброго дня! В двух словах, есть в цикле функция принимающая переменное кол-во аргументов, вот и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru