Ho una funzione ColdFusion "foo", che prende tre argomenti, e le altre due sono opzionali:Come specificare solo alcuni argomenti facoltativi quando si chiama la funzione in 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>
voglio chiamare foo, passando arg1 e arg3, ma lasciando fuori arg2. So che questo è possibile se chiamo la funzione usando cfinvoke
, ma quella sintassi è davvero prolissa e complicata. Ho provato questi due approcci, né funziona:
<cfset somevar=foo(1, arg3=3) /> <!--- gives syntax error --->
<cfset somevar=foo(1, arg3:3) /> <!--- gives syntax error --->
Questo è il modo in cui generalmente preferisco farlo. Sono più che probabile che determini quali argomenti includere a runtime. È bello e facile racchiudere all'interno di un blocco . –
ale
Come Al implica, dovresti aggiornare i tuoi esempi per dimostrare che uno dei principali vantaggi di ArgumentCollection è che ti permette di costruire/manipolare le strutture in modo flessibile, prima di inviarlo alla funzione - i tuoi esempi attuali sono solo prolissi modo di usare tutti gli argomenti con nome. :) –
Da notare anche che è possibile combinare gli argomenti con nome e ArgumentCollection in una singola chiamata di funzione. –