是否可以在没有中断的情况下使用coffeescript中的开关?
switch code switch (code) {
when 37 then case 37: break;
when 38 then -> case 38: break;
when 39 then case 39: break;
when 40 case 40:
... ...
我认为这会奏效但失败了:
switch code
when 37 then continue
when 38 then continue -> not valid
when 39 then continue
when 40
...
答案 0 :(得分:48)
不是真的。来自the docs:
JavaScript中的切换语句有点尴尬。您需要记住在每个case语句的末尾处断开以避免意外地进入默认情况。 CoffeeScript可防止意外掉落,并可将开关转换为可返回的可分配表达式。格式为:switch condition,when子句,否则为默认情况。
但是,如果要平等对待,您可以在case
中指定多个值:
switch day
when "Mon" then go work
when "Tue" then go relax
when "Thu" then go iceFishing
when "Fri", "Sat"
if day is bingoDay
go bingo
go dancing
when "Sun" then go church
else go work
答案 1 :(得分:12)
您可以使用续行来帮助解决此问题。例如:
name = 'Jill'
switch name
when 'Jill', \
'Joan', \
'Jess', \
'Jean'
$('#display').text 'Hi!'
else
$('#display').text 'Bye!'
答案 2 :(得分:4)
这是完全可能的,只需使用经典的javascript并通过反引号传递
`
switch (code) {
case 37:
case 38:
case 39:
case 40:
// do the work of all four
default:
//default
}
`
答案 3 :(得分:2)
旧问题已经存在,但是如果你将逗号放在下一行,它会按预期工作,而不会显示@Ron Martinez的反斜杠行延续
switch code
when 37
, 38
, 39
, 40
console.log "Some Number"
else
console.log "Default"
将编译为:
switch (code) {
case 37:
case 38:
case 39:
case 40:
return console.log("Some Number");
default:
return console.log("Default");
}