Syntax Coffeescript相当于python';通过';陈述

Syntax Coffeescript相当于python';通过';陈述,syntax,coffeescript,Syntax,Coffeescript,在Python中,可以使用“pass”语句不执行任何操作: if true: pass 在coffeescript中有类似的说法吗? 我试图做一个switch语句,如果满足某些条件,我什么也不做 switch variable: when 5 then pass else do variable 我总是用分号来表示: switch variable when 5 then ; else do variable 这是因为在javascript中,分号是一个有效的语句,

在Python中,可以使用“pass”语句不执行任何操作:

if true:
    pass
在coffeescript中有类似的说法吗? 我试图做一个switch语句,如果满足某些条件,我什么也不做

switch variable:
  when 5 then pass
  else do variable

我总是用分号来表示:

switch variable
  when 5 then ;
  else do variable
这是因为在javascript中,分号是一个有效的语句,它碰巧也不起任何作用

更新:我刚刚想到了另一种有趣的方法。您可以将
pass
定义为全局变量,并将其设置为
undefined

window.pass = undefined

switch variable
  when 5 then pass
  else do variable
唯一需要注意的是将
pass
用作局部变量或重新定义全局
pass
变量。那会破坏你的密码

如果使用Google的闭包编译器,可以对该变量进行注释,使其成为常量:

`/** @const */ var pass;`

但是它必须在每个文件的开头。不过,您可以编写自己的预处理器来自动执行此操作。

因为每个表达式在CoffeeScript中都有一个值,
pass
关键字(如果存在)将等同于未定义的值
。所以,你可以定义

pass = undefined
然后像在Python中一样使用
pass

switch variable
   when 5
     pass
   else
     do variable

与Python不同,空块(通常)在CoffeeScript中有效。因此,您可以简单地使用:

switch variable:
  when 5 then
  else
    variable
请注意,如果没有
,那么它将无法编译,我觉得这有点奇怪。不过,一般来说,这是可行的:

if x
else if y
  something()
else
  somethingElse()
是非常有效的咖啡脚本。

我是一个快乐的用户

switch x
  when 1
   null
  when 2
   y = 3
  else
   y = 4

因为
null
已经存在于语言中,并且在语义上传递了“nothing”的含义

这在《咖啡脚本》中对我来说很有意义:

switch variable
    when "a" then doSomething()
    when "b" then break
这将编译为以下js:

switch (variable) {
    case "a":
        doSomething();
        break;
    case "b":
        break;
}
注意:您不应该像@flow建议的那样使用null,因为它插入了这样一个不必要的语句

null;

这适用于switch语句,但不能完全填充
pass
,因为它不能用于像pass can这样的if/else。这是我最喜欢的答案,但我想知道是否使用
将比
null
更高效(非常微小)?