通常,CFSCRIPT 标记中编写的所有语句都必须以半色 (;) 结尾,但今天我正在处理示例代码,我忘记在 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>
最佳答案
我猜 Adobe 开发人员可能忘记将这个相当无用的约定应用于 CFScript 解析器...因为它看起来像一个错误(它是 already filed ,顺便说一句),真的。你甚至可以写这样的东西,它会起作用:
writeDump(variables)writeDump(a & b)
此函数的隐式分号。
值得一提的是,Railo 更进一步,当在线出现单个语句时,所有分号都是可选的,所以这会很好地工作:
<cfscript>
a = "Hello"
b = "World"
concat(a,b)
writeDump(a & b)
writeOutput(a)
</cfscript>
关于coldfusion - 为什么 writedump 函数不需要在 cfscript 中使用分号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6606208/