【发布时间】:2012-10-05 01:35:46
【问题描述】:
我发现 coffee 编译器在一个简单表达式上的奇怪行为,这与 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
另一件奇怪的事情 - 它并不总是发生,有时,经过大量尝试和变化后,coffee 开始正常编译完全相同的表达式,没有错误。
但似乎在交互模式下,咖啡总是失败。
我发现了另一个奇怪的事情——这个错误只在我使用'break'关键字时发生。表达式 '(console.log i; i+1) for i in [0..5]' 工作正常并返回一个数组。
【问题讨论】:
标签: node.js coffeescript