为什么writedump函数在cfscript中不需要分号?

时间:2011-07-07 05:30:49

标签: coldfusion coldfusion-9

通常,用CFSCRIPT标签编写的所有语句都必须以semicolor(;)结尾,但今天我正在处理示例代码,我忘了在writedump()函数之后编写分号(;)但代码执行正常。 §以下示例代码,这项工作正常;在声明的最后。只是好奇,知道为什么writeDump没有分号工作。

我正在使用Coldfusion版本9,0,1,274733。

<cfscript>
a = "Hello";
b = "World";
concat(a,b);
writeDump(a & b)
writeOutput(a);
</cfscript>


<cffunction name="concat" access="public" output="false" returntype="string">
<cfargument name="str1" required="true" type="string" />
<cfargument name="str2" required="true" type="string" />
<cfreturn str1 & str2>
</cffunction> 

1 个答案:

答案 0 :(得分:4)

我想Adobe开发人员可能忘记将这个相当无用的约定应用于CFScript解析器...因为它看起来像一个bug(它是already filed,顺便说一句),真的。你甚至可以写这样的东西,它会起作用:

writeDump(variables)writeDump(a & b) 

此函数的隐式分号。

值得一提的是,当单一声明出现在线时,Railo更进一步,并且所有分号都是可选的,所以这样可以正常工作:

<cfscript>
    a = "Hello"
    b = "World"
    concat(a,b)
    writeDump(a & b)
    writeOutput(a)
</cfscript>