在 Python 中,可以使用“pass”语句什么都不做:
if true:
pass
咖啡脚本中有类似的说法吗?我正在尝试执行 switch 语句,如果满足某些条件,则什么也不做。
switch variable:
when 5 then pass
else do variable
在 Python 中,可以使用“pass”语句什么都不做:
if true:
pass
咖啡脚本中有类似的说法吗?我正在尝试执行 switch 语句,如果满足某些条件,则什么也不做。
switch variable:
when 5 then pass
else do variable
我是一个快乐的用户
switch x
when 1
null
when 2
y = 3
else
y = 4
因为null
已经在语言中,并且确实在语义上传输了“无”的含义。
与 Python 不同,空块(通常)在 CoffeeScript 中有效。所以你可以简单地使用:
switch variable:
when 5 then
else
variable
请注意,没有then
它将无法编译,我觉得这有点奇怪。不过,这很普遍:
if x
else if y
something()
else
somethingElse()
是完全有效的 CoffeeScript。
因为在 CoffeeScript 中每个表达式都有一个值pass
,所以如果存在关键字,它就等同于 value undefined
。所以,你可以定义
pass = undefined
然后pass
像在 Python 中一样使用:
switch variable
when 5
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
变量。那会破坏你的代码。
如果你使用谷歌的闭包编译器,你可以注释这个变量,使它成为一个常量:
`/** @const */ var pass;`
但是它必须在每个文件的开头。不过,您可以编写自己的预处理器来自动执行此操作。
这在咖啡脚本中对我来说很有意义:
switch variable
when "a" then doSomething()
when "b" then break
这编译为以下js:
switch (variable) {
case "a":
doSomething();
break;
case "b":
break;
}
注意:你不应该像@flow 所建议的那样使用 null,因为它会插入一个像这样的不必要的语句
null;