是否可以将函数作为参数传递给ColdFusion中的其他函数?如果是,如何?

问题描述 投票:0回答:2

我正在尝试找到一种将函数作为参数传递给其他函数的方法,如下所示:

<cfset function_A(function_B())/>

这里function_A和function_B是用户定义的函数。

coldfusion cfml
2个回答
1
投票

我们一直这样做。

<cffunction  name="myfucn1">
    <cfreturn 100>
</cffunction>

<cffunction  name="myfunc2">
    <cfargument  name="myNum">
    <cfdump  var="#arguments.myNUm#">
    <cfabort>
</cffunction>

<cfset myfunc2(myfucn1())>

您将获得的输出是100


0
投票

当然,您可以将函数作为参数传递。这与任何其他语言都没有不同。只要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

© www.soinside.com 2019 - 2024. All rights reserved.