通常,用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>
答案 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>