Кофе script переключатель без перерыва
Можно ли использовать переключатель в 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
...
Ответы
Ответ 1
Не совсем. Из документы:
Операторы Switch в JavaScript немного неудобны. Вы должны помнить, чтобы сломать в конце каждого заявления о случаях, чтобы случайно не провалиться к случаю по умолчанию. CoffeeScript предотвращает случайный провал и может преобразовать коммутатор в возвращаемое назначаемое выражение. Формат: условие switch, when clauses, иначе случай по умолчанию.
Однако вы можете указать несколько значений в 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
Ответ 2
Вы можете использовать продолжение строки, чтобы помочь в этом. Например:
name = 'Jill'
switch name
when 'Jill', \
'Joan', \
'Jess', \
'Jean'
$('#display').text 'Hi!'
else
$('#display').text 'Bye!'
Проверьте здесь действие.
Ответ 3
Это вполне возможно, просто используйте классический javascript и передайте его с помощью backtics
`
switch (code) {
case 37:
case 38:
case 39:
case 40:
// do the work of all four
default:
//default
}
`
Ответ 4
Старый вопрос уже, но если вы поместите запятые на следующую строку, это работает так, как ожидалось, без продолжения линии обратной косой черты, показанной @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");
}