我發現了一個奇怪的行爲咖啡編譯器上的一個簡單表達式,它不同於coffeescript.org站點上的交互式編譯器反應。咖啡編譯器的奇怪行爲
當我嘗試編譯下一個字符串咖啡:
(console.log i; break) for i in [0..10]
我:
SyntaxError: In repl, cannot use a pure statement in an expression.at SyntaxError (unknown source) ...
但在coffescript.org互動編譯器相同的表達編譯就好了,正如我所預料的那樣:
var i, _i;
for (i = _i = 0; _i <= 10; i = ++_i) {
console.log(i);
break;
}
爲什麼咖啡不喜歡()在這裏分組?
UPD
另一個奇怪的事情 - 它發生並非總是如此,有時,大量的嘗試和變化後,咖啡開始絕對正常編譯同樣的表情,沒有錯誤。
但似乎在互動模式下,咖啡總是失敗。
我發現了另一個奇怪的事情 - 只有當我使用'break'關鍵字時纔會發生此錯誤。表達式'(console.log i; i + 1)for i in [0..5]'工作得很好,並返回一個數組。
感謝您的詳細描述!但有一件事 - 我在* .coffee腳本編譯過程中遇到了這個錯誤,而且它並不總是相同的表達式,有時會編譯得很正常,有時不會。 第一次遇到它,我花了很多時間在代碼中搜索它發生的地方,因爲消息沒有行號。 – peko