zim*_*ies 20 syntax coffeescript
在Python中,可以使用'pass'语句来做任何事情:
if true:
pass
Run Code Online (Sandbox Code Playgroud)
coffeescript中有类似的陈述吗?我正在尝试执行switch语句,如果满足某些条件则不执行任何操作.
switch variable:
when 5 then pass
else do variable
Run Code Online (Sandbox Code Playgroud)
flo*_*low 18
我是一个快乐的用户
switch x
when 1
null
when 2
y = 3
else
y = 4
Run Code Online (Sandbox Code Playgroud)
既然null已经在语言中,并且语义上传达了"没有"的意思.
Aar*_*our 16
与Python不同,空块在CoffeeScript中通常是有效的.所以你可以简单地使用:
switch variable:
when 5 then
else
variable
Run Code Online (Sandbox Code Playgroud)
请注意,没有then它将无法编译,我觉得有点奇怪.但这很普遍,但是:
if x
else if y
something()
else
somethingElse()
Run Code Online (Sandbox Code Playgroud)
是完全有效的CoffeeScript.
因为每个表达式在CoffeeScript中都有一个值,所以pass关键字(如果存在)将等于该值undefined.所以,你可以定义
pass = undefined
Run Code Online (Sandbox Code Playgroud)
然后pass像在Python中一样使用:
switch variable
when 5
pass
else
do variable
Run Code Online (Sandbox Code Playgroud)
我总是使用分号:
switch variable
when 5 then ;
else do variable
Run Code Online (Sandbox Code Playgroud)
这是因为在javascript中,分号是一个有效的语句,它也没有做任何事情.
更新:我只是想到了另一个有趣的方法.您可以将其定义pass为全局变量并将其设置为undefined:
window.pass = undefined
switch variable
when 5 then pass
else do variable
Run Code Online (Sandbox Code Playgroud)
您唯一需要注意的是使用pass局部变量或重新定义全局pass变量.这会打破你的代码.
如果您使用Google的闭包编译器,则可以注释此变量以使其成为常量:
`/** @const */ var pass;`
Run Code Online (Sandbox Code Playgroud)
但是它必须在每个文件的开头.但是,您可以编写自己的预处理器来自动执行此操作.