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でこれ以上難しくない場合は、インライン:

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