que tienen una función de ColdFusion "foo", que toma tres argumentos, y los dos segundos son opcionales:¿Cómo especificar solo algunos argumentos opcionales cuando se llama a la función en ColdFusion?
<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>
Quiero llamar a foo, pasando arg1 y arg3, pero dejando fuera arg2. Sé que esto es posible si llamo a la función usando cfinvoke
, pero esa sintaxis es muy detallada y complicada. He intentado estos dos enfoques, ninguno funciona:
<cfset somevar=foo(1, arg3=3) /> <!--- gives syntax error --->
<cfset somevar=foo(1, arg3:3) /> <!--- gives syntax error --->
Así es como generalmente prefiero hacerlo. Es más que probable que determine qué argumentos incluir en el tiempo de ejecución. Es agradable y fácil ajustar dentro de un bloque . –
ale
Como Al lo implica, debe actualizar sus ejemplos para mostrar que una ventaja importante de ArgumentCollection es que le permite construir/manipular las estructuras de una manera flexible, antes de enviarlo a la función; sus ejemplos actuales son simplemente largos. forma de usar todos los argumentos nombrados. :) –
También vale la pena señalar que puede mezclar y combinar argumentos con nombre y ArgumentCollection en una sola llamada de función. –