syntax - 在ColdFusion中调用函数时如何仅指定一些可选参数?

标签 syntax coldfusion optional-parameters

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

<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/

相关文章:

c# - 当接口(interface)方法没有参数时,为什么不能识别具有所有可选参数的方法的实现?

php - 我可以强制 PHP 7.1 语法在返回类型中要求类型提示吗?

jsp - 为什么jsp会触发PropertyNotFound?

collections - 解释 verity 索引和文档搜索限制

php - 本地化:子域、目录或域

mysql - 将 NULL 值插入 MySQL,来自 Coldfusion

powershell - 制作 PowerShell 所需的众多参数中的至少一个

c# - 为什么 String.Empty 是无效的默认参数?

c++ - 为什么 C++ 变量声明语法不一致?

Java:类型参数必须实现接口(interface)