咖啡脚本:如果......是......那么

Phi*_*ide 1 javascript compilation coffeescript

我正在用Coffee Script编写一个摇滚纸剪刀游戏,代码没有像我期望的那样编译.

CoffeeScript的

if choice is opponent_choice then alert "Tie!"
Run Code Online (Sandbox Code Playgroud)

编译成

if (choice === opponent_choice) alert("Tie!");
Run Code Online (Sandbox Code Playgroud)

但我在期待

if (choice === opponent_choice) {
alert("Tie!");
}
Run Code Online (Sandbox Code Playgroud)

我需要改变什么才能按照我的预期进行编译?

Sam*_*lan 16

如果一行上只有一个语句,则不需要大括号.它们在功能上是相同的,并且coffeescript编译器优化输出以使用最少量的字符.


Dav*_*ton 5

为什么这有关系?

要使CS创建块/多行,then您需要实际拥有多行then,例如:

if choice is opponent_choice
  alert "Tie!"
  alert "Foo"
Run Code Online (Sandbox Code Playgroud)

编译为:

if (choice === opponent_choice) {
  alert("Tie!");
  alert("Foo");
}
Run Code Online (Sandbox Code Playgroud)