Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
coffeescript重构_Coffeescript - Fatal编程技术网

coffeescript重构

coffeescript重构,coffeescript,Coffeescript,是否有任何特定于coffeescript的花招可以让这看起来更整洁: index = (-> if segment == 'index' return 0 else if segment == 'inbox' return 2 1 )() 是,开关表达式: index = switch segment when 'index' then 0 when 'i

是否有任何特定于coffeescript的花招可以让这看起来更整洁:

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

          1
        )()

是,开关表达式:

index = switch segment
  when 'index' then 0
  when 'inbox' then 2
  else 1

是,特定于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

如果。。。然后。。。else语句使用
\
字符分成多行(为了可读性)

index = if segment == 'index' then 0 \
        else if segment == 'inbox' then 2 \
        else 1
如果您的条件逻辑对于一个简单的
开关
块来说太复杂,这将非常有用