3

是否有任何特定于咖啡脚本的技巧可以使这看起来更整洁:

index = (->
          if segment == 'index'
            return 0
          else if segment == 'inbox'
            return 2

          1
        )()
4

3 回答 3

7

是的,一个switch表达式:

index = switch segment
  when 'index' then 0
  when 'inbox' then 2
  else 1
于 2012-11-28T15:19:24.237 回答
1

您可以使用字符将内联if ... then ... else语句分成多行(为了便于阅读) 。\

index = if segment == 'index' then 0 \
        else if segment == 'inbox' then 2 \
        else 1

switch如果你的条件逻辑对于一个简单的块来说太复杂了,这很有用。

于 2013-03-22T15:51:11.513 回答
0

是的,特定于 CoffeeScript 的存在运算符:

index = {'index': 0, 'inbox': 2}[segment] ? 1

您还可以使用内联 if 语句来摆脱函数调用:

index = if segment == 'index' then 0 else if segment == 'inbox' then 2 else 1

但是在直接的 Javascript 中,内联 if 不会更难:

index = segment == 'index' ? 0 : segment == 'inbox' ? 2 : 1
于 2013-01-08T08:12:14.603 回答