Вызов функции в аргументах функции - PullRequest
0 голосов
/ 22 апреля 2010

У меня есть функция, мы назовем ее funcA, которая возвращает объект. Я хочу передать этот объект на funcB. Могу ли я сделать это?

funcB(funcA());

, чтобы сначала вызывался funcA(), а результаты передавались в funcB()?

Ответы [ 5 ]

4 голосов
/ 22 апреля 2010

Да, да, вы можете.

3 голосов
/ 22 апреля 2010

Если это поможет, Исроэль, вы можете подумать, что возвращаемый объект «заменяет» функцию на месте. Таким образом, после выполнения funcA () он «заменяется» возвращаемым значением и передается в funcB ().

Как правило, вы не захотите выполнять подобные функции для вложения более чем на 3 уровня. Если он начинает становиться нечитаемым, сохраните объект в переменной, и передача этой переменной в следующую функцию может сделать ваш код более читабельным.

Так что ответ да, как все остальные указали.

0 голосов
/ 22 апреля 2010

Да, это должно работать так, как вы хотите. funcB(funcA()) вызывает funcA() и передает результат funcB()

Возможно, вы были обеспокоены тем, что он передаст функцию funcA в funcB()? Для этого синтаксис будет funcB(funcA)

0 голосов
/ 22 апреля 2010

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

0 голосов
/ 22 апреля 2010

Я не вижу никаких проблем с этим, вы пробовали какой-либо образец?

Он должен работать нормально.

Если вы столкнулись с какой-либо конкретной проблемой, пожалуйста, опубликуйте ее.

Если вы хотите передать funcA в качестве параметра funB, тогда вам нужновызовите funcB как funcB (funcA)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...