CFSET调用功能,无变量

时间:2018-07-10 13:13:04

标签: coldfusion return-value coldfusion-11

这种语言的新功能很新,本周开始使用它。

所以我的问题是,我创办的新公司使用CF11,并且它们主要仅使用标签进行编码。我想知道是否可以在没有变量声明的情况下调用@Bean public RouteLocator customRouteLocator(RouteLocatorBuilder routeBuilder) { return routeBuilder.routes() .route(r -> r.path("/api/v1/**") .setRequestHeader("testKey", "testValue") .uri("URL")) .build(); }

如果不是,用标签调用没有返回值的函数的更好方法是什么?

cfset

我通常在cfset上调用我的启动函数,但是它们都有返回值。

<cfset myFunction()>

1 个答案:

答案 0 :(得分:7)

是的,在不捕获结果的情况下调用函数是完全可以的。可悲的是,在旧的CF文档中曾经有很多这样的语法。它给您一定的错误印象,您必须捕获函数的结果(并在所有位置使用额外的井号)。都不是真的。即使函数确实返回了某些内容,也不需要捕获结果。仅当您希望以后将其用于某些用途时。您始终可以随意调用函数,而完全忽略结果。所以这两个都是有效的:

<!--- 1. capture result ---> 
<cfset result = getTimeNow()>
<!--- 2. ignore result ---> 
<cfset getTimeNow()>

<!--- sample function --->
<cffunction name="getTimeNow" return="date">
    <cfreturn now()>
</cffunction>

从技术上讲,没有什么可以阻止您捕获不返回任何内容的函数的结果。但是,“结果”变量将是未定义的,因此它实际上没有任何作用。

 <cfset result = doNothing()>
 <!--- this will error --->
 <cfoutput>#result#</cfoutput>

 <!--- sample function --->
 <cffunction name="doNothing" return="void">
    <!--- function that returns nothing --->
 </cffunction>