On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение





Пост N: 109
Зарегистрирован: 23.06.08
ссылка на сообщение  Отправлено: 21.10.18 23:22. Заголовок: Динамический вызов функции с произвольным количество аргументов


Добрый вечер.
Есть функция, принимающая произвольное количество аргументов через HB_AParams().
Как вызвать эту функцию, передав ей массив собственных аргументов для HB_AParams()?
Вызываемую функцию при этом редактировать нельзя.

Вопрос в виде кода:
PROCEDURE Main() 
LOCAL aData := {1,2,3,4}
// Как вызвать Test() заполнив её аргументами из aData ?
// Чтобы рантайм вызвал Test(1,2,3,4)
RETURN

// Эту функцию редактировать нельзя...
FUNCTION Test()
LOCAL aParams := HB_AParams()
FOR nI := 1 TO LEN(aParams)
? aParams[nI]
NEXT
RETURN NIL


Пример решения проблемы на JavaScript:
 

var data = [1,2,3,4];
Test(1,2,3,4); // Обычный вызов функции
Test.apply(null, data); // Вызов полностью аналогичный предыдущей функции

function Test() {
for (var i=0;i<arguments.length; i++) {
console.log((i+1) + " : " + arguments);
}
}


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 2 [только новые]


moderator


Пост N: 1088
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 22.10.18 09:10. Заголовок: Test( hb_arrayToPara..


Test( hb_arrayToParams(aData) )

Спасибо: 1 
ПрофильЦитата Ответить





Пост N: 110
Зарегистрирован: 23.06.08
ссылка на сообщение  Отправлено: 22.10.18 21:34. Заголовок: alkresin пишет: Te..


alkresin пишет:

 цитата:

Test( hb_arrayToParams(aData) )


Спасибо, работает!

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 555
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет