我有一个ColdFusion函数“ foo”,它需要三个arg,后两个是可选的:

<cffunction name="foo" access="public" returntype="any">
    <cfargument name="arg1" type="any" required="true" />
    <cfargument name="arg2" type="any" required="false" default="arg2" />
    <cfargument name="arg3" type="any" required="false" default="arg3" />

    ...

    <cfreturn whatever />
</cffunction>


我想调用foo,传入arg1和arg3,但忽略arg2。我知道如果使用cfinvoke调用该函数是可能的,但是语法确实很冗长和复杂。我尝试了以下两种方法,但均无效:

<cfset somevar=foo(1, arg3=3) /> <!--- gives syntax error --->
<cfset somevar=foo(1, arg3:3) /> <!--- gives syntax error --->

最佳答案

您必须始终使用命名参数。您不能像使用其他某些语言一样混合使用命名和位置参数。

<cfset somevar = foo(arg1=1, arg3=3) />

关于syntax - 在ColdFusion中调用函数时,如何仅指定一些可选参数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1071396/

10-11 07:04