問題タブ [splat]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
908 参照

ruby-on-rails - ActiveRecord すべての子を別のレコードに移動

他のテーブルとの 5 つの異なる has-many 関係を持つテーブルがあります。レコードを削除する前に、そのすべての子を別のレコードに移動する必要があります。これを達成するために、次のコードを使用します。

基本的に、これは になりtarget.child-association << self.child-associationます。しかし、これは正しく機能せず、"self" からすべての子を削除し、関連付けられたフィールド null を除くすべてのフィールドで単一の子を "target" に追加します。これは、「<<」がレコードを期待しており、レコードの配列を渡しているためだと思います。「<<」も引数のリストを受け入れることがわかったので、(splat演算子に注意してください)のようなものが必要だと思いますが、これtarget.send(assoc.name) << *self.send(assoc. name)を行うための有効な構文がわかりません。だから私の質問は2つです:

  1. 「<<」への入力用に任意の配列をどのように「スプラット」しますか?
  2. 子の再割り当てを正しく機能させるために必要なことは何ですか?
0 投票する
2 に答える
3762 参照

coffeescript - CoffeeScript:関数呼び出しで配列を展開します

Rubyでは、このような位置パラメータとして使用される配列要素を使用してメソッドを呼び出すことができます

ここで、「*」演算子は配列を所定の位置に展開します。

CoffeeScriptでも同じことをしようとしていますが、方法が見つかりません。具体的には、jQuery関数の呼び出しで追加の引数を渡したい

上記の構文は明らかに機能しません。私は機能する方法を探しています。

0 投票する
4 に答える
2239 参照

ruby - splat 演算子を使用してブロックへの参照によって引数を渡す

splat 演算子を使用してブロックに引数を参照渡しすると、引数がコピーされるようです。

私はこれを持っています:

これらの引数を参照渡しするにはどうすればよいですか? 配列を直接渡すとうまくいくようですが、splat 演算子の方がはるかに実用的で、直感的で、保守が容易です。

0 投票する
1 に答える
1292 参照

ruby - ブロック変数の括弧

与えられた

1) 私はこれを理解しています

(x, y)との 2 つの変数があるzため、3 番目の要素:cは破棄され、 とz一致し:bます。そして、私はこれを理解しています

これは に(x, y)一致:aし、これは配列ではないため要素がないため、 にy一致しnilます。

しかし、どのように

仕事?nil返されることを期待しています。

2) 戻り値がこのようになるのはなぜですか?

両方とも戻ってくると思いますnil

0 投票する
2 に答える
1946 参照

ruby - Ruby の to_s バイナリへの変換 (引数の Splat 演算子)

次のコードを実行すると、最初の 2 行で期待どおりの結果が返されます。ただし、3 番目は 2 のバイナリ表現を返します。

呼び出し時に 2 を渡すとto_s出力がバイナリに変換されることはわかっていますが、3 番目のケースでをto_s無視するのはなぜですか? *違いがある場合は、Ruby 1.9.2 を実行しています。

0 投票する
2 に答える
668 参照

ruby - Ruby スプラットを使用するとエラーが発生するのはなぜですか?

ユーザーが単一のオブジェクトまたは配列のいずれかになるオプションをメソッドに渡せるようにしたいと思います。`opts[:variable_length_opt] が定義されていると仮定すると、以下のコードが機能します。

ただし、オプションが設定されていない場合は、デフォルトを設定できるようにしたいと考えています。しかし、このコードは機能しません:

エラーがスローされunexpected tSTARます。私が求めていることを達成するための他のより詳細な方法があることは理解していますが、他に短い代替手段があるかどうか疑問に思っています。また、スプラットの限界は何ですか?ここで利用できない正当な理由は思いつきません。

0 投票する
5 に答える
4723 参照

ruby - splatとオプションのハッシュを同時に使用してRubyでメソッドを定義する方法は?

次のようなメソッドを定義できます。

しかし、これはhash_params引数を必須にします。これらも機能しません:

オプションにする方法はありますか?

0 投票する
2 に答える
255 参照

ruby - 引数の位置にスプラット

なぜこのコードは

これを返す

について知っていArray#flattenます。しかし、*どういう意味ですか?それに関する情報を探すにはどうすればよいですか?

0 投票する
3 に答える
2553 参照

ruby - 「送信」ブロックと引数を渡すメッセージについてのRubyKoans

私はRubyKoansabout_message_passing.rbに取り組んでおり、次のようにmethod_missingのコードを機能させています。

このコードは機能しているようですが、* argsでスプラットが必要な理由とブロックで&が必要な理由がよくわかりません。

メソッドを定義している場合、*と&はそれぞれ配列引数とブロック引数を表すために使用されることを理解していますが、オブジェクトのメソッドを呼び出すためにsendメソッドで使用されるとはどういう意味ですか?

0 投票する
1 に答える
943 参照

ruby - * ::(アスタリスクの二重コロン)はRubyで何をしますか?

私は今日Railsコードを突っ込んでいて、このスニペットに出くわしました:

アスタリスク-ダブルコロン(または、必要に応じてスプラット-ダブルコロン)は*::Date何をしますか?

おそらく、それは特に名前空間のあるクラスのスコープと関係があります...しかし、作成者が標準クラスDateを使用するだけでなく、それを含めるのに十分な必要があります。Date