2011-07-07 16 views
3

CFSCRIPTタグで書かれたすべてのステートメントは、semicolor(;)で終わらなければなりませんが、今日はwritedump()関数の後にセミコロン(;)を書くのを忘れたサンプルコードを使っていました。サンプルコードの下のSeとこの作業はうまく動作します。声明の最後に。 writeDumpがセミコロンなしで動作する理由を知りたい人にはちょっと不安です。なぜwritedump関数はcfscriptでセミコロンを必要としませんか?

私は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> 

答えて

4

私は、Adobeの開発者は、それはバグのように見えるので、本当に、(それはところで、already filedです)...のCFScriptパーサーにこのかなり役に立たない規則を適用するために忘れてしまった可能性が推測。このようなものを書くこともできます:

writeDump(variables)writeDump(a & b) 

この関数の暗黙のセミコロンの種類です。

Railoをさらに行って、ライン上に存在する場合、単一の文のすべてのセミコロンはオプションになり、ので、これはうまく動作することを言及することは価値

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

早くあなたが '' を実現あなたはECMAScriptのが幸せに準拠していませんさあ、 – orangepips

+0

@orangepipsなぜ気にする必要がありますか?私はちょっと便利な構文の言語がほしいのです。 – Sergii

+0

あなたのためのものではなく、最初に ''と表示されている多くの人たちの間違いです。 – orangepips

関連する問題