Coffeescript相当于python'pass'语句

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.

  • 它可能有效,但看起来有点不清楚. (3认同)

Tre*_*ham 8

因为每个表达式在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)


ben*_*tah 6

我总是使用分号:

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)

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