0

私はCoffee Scriptにコードのこの部分を持っています.3進数のifまたはこのようなものでどのように単純化できるかわかりません..

if options.tracks?
  @collection.add(options.tracks, {at: length+1, dest:options.dest})
else
  @collection.add(options, {at: length+1, dest:options.dest})

くだらない質問ですみません..

4

2 に答える 2

1

CoffeeScript には簡単な 10 項演算子はありませんが、どちらかの分岐の最後の式を生成する if を使用できます

@collection.add((if options.tracks then options.tracks else options), 
  {at: length+1, dest:options.dest})

そうは言っても。視覚的なノイズが多くて読みにくいので、そのようには書きません。したほうがいい

tracks = if options.tracks then options.tracks else options
@collection.add(tracks, {at: length+1, dest:options.dest})

またはさらに良い

tracks = options.tracks || options
@collection.add(tracks, {at: length+1, dest:options.dest})
于 2013-02-21T12:18:05.913 に答える
1

存在演算子を使用すると、コードと同じ動作が得られます。

@collection.add(options.tracks ? options, {at: length + 1, dest: options.dest})

私は個人的にいくつかの括弧/中括弧を取り除き、最初のパラメーターに別の変数を使用するかもしれません...しかし、これは本当に個人的な好みに関するものです:

tracks = options.tracks ? options
@collection.add tracks, at: length + 1, dest: options.dest
于 2013-02-21T12:19:52.450 に答える