我正在尝试找到一种将函数作为参数传递给其他函数的方法,如下所示:
<cfset function_A(function_B())/>
这里function_A和function_B是用户定义的函数。
我们一直这样做。
<cffunction name="myfucn1">
<cfreturn 100>
</cffunction>
<cffunction name="myfunc2">
<cfargument name="myNum">
<cfdump var="#arguments.myNUm#">
<cfabort>
</cffunction>
<cfset myfunc2(myfucn1())>
您将获得的输出是100
当然,您可以将函数作为参数传递。这与任何其他语言都没有不同。只要function_B()
的返回类型与function_A()
的第一个参数是相同的数据类型,那么<cfset function_A(function_B())/>
的示例就完全有效。
您要问的是一种惯例,并且一直都在做。例如,您需要从3个不同的值中获取最大数量。您可以这样完成。
<cfset maxVal = max(a, max(b, c))>
您可以看到,max()
接受2个参数。假定a,b和c均为有效数字,则第一个参数为数字,第二个参数为返回b和c的较大数值的函数。https://helpx.adobe.com/coldfusion/cfml-reference/coldfusion-functions/functions-m-r/max.html