Syntax Coffeescript相当于python';通过';陈述
在Python中,可以使用“pass”语句不执行任何操作: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中,分号是一个有效的语句,
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
更高效(非常微小)?