Конечно, вы можете передать функцию в качестве аргумента. Это ничем не отличается от любого другого языка. Пока тип возвращаемого значения function_B()
совпадает с типом данных первого аргумента function_A()
, ваш пример <cfset function_A(function_B())/>
полностью допустим.
То, что вы спрашиваете, является обычной практикой и выполняется постоянно. Например, вам нужно получить максимальное количество из 3 разных значений. Вы бы sh сделали это следующим образом.
<cfset maxVal = max(a, max(b, c))>
Как видите, max()
принимает 2 аргумента. Предполагая, что a, b и c являются действительными числами, первый аргумент - это цифра c, а второй аргумент - это функция, которая возвращает большее значение чисел c для b и c. https://helpx.adobe.com/coldfusion/cfml-reference/coldfusion-functions/functions-m-r/max.html