問題タブ [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.
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つです:
- 「<<」への入力用に任意の配列をどのように「スプラット」しますか?
- 子の再割り当てを正しく機能させるために必要なことは何ですか?
coffeescript - CoffeeScript:関数呼び出しで配列を展開します
Rubyでは、このような位置パラメータとして使用される配列要素を使用してメソッドを呼び出すことができます
ここで、「*」演算子は配列を所定の位置に展開します。
CoffeeScriptでも同じことをしようとしていますが、方法が見つかりません。具体的には、jQuery関数の呼び出しで追加の引数を渡したい
上記の構文は明らかに機能しません。私は機能する方法を探しています。
ruby - splat 演算子を使用してブロックへの参照によって引数を渡す
splat 演算子を使用してブロックに引数を参照渡しすると、引数がコピーされるようです。
私はこれを持っています:
これらの引数を参照渡しするにはどうすればよいですか? 配列を直接渡すとうまくいくようですが、splat 演算子の方がはるかに実用的で、直感的で、保守が容易です。
ruby - ブロック変数の括弧
与えられた
1) 私はこれを理解しています
(x, y)
との 2 つの変数があるz
ため、3 番目の要素:c
は破棄され、 とz
一致し:b
ます。そして、私はこれを理解しています
これは に(x, y)
一致:a
し、これは配列ではないため要素がないため、 にy
一致しnil
ます。
しかし、どのように
仕事?nil
返されることを期待しています。
2) 戻り値がこのようになるのはなぜですか?
両方とも戻ってくると思いますnil
。
ruby - Ruby の to_s バイナリへの変換 (引数の Splat 演算子)
次のコードを実行すると、最初の 2 行で期待どおりの結果が返されます。ただし、3 番目は 2 のバイナリ表現を返します。
呼び出し時に 2 を渡すとto_s
出力がバイナリに変換されることはわかっていますが、3 番目のケースでをto_s
無視するのはなぜですか? *
違いがある場合は、Ruby 1.9.2 を実行しています。
ruby - Ruby スプラットを使用するとエラーが発生するのはなぜですか?
ユーザーが単一のオブジェクトまたは配列のいずれかになるオプションをメソッドに渡せるようにしたいと思います。`opts[:variable_length_opt] が定義されていると仮定すると、以下のコードが機能します。
ただし、オプションが設定されていない場合は、デフォルトを設定できるようにしたいと考えています。しかし、このコードは機能しません:
エラーがスローされunexpected tSTAR
ます。私が求めていることを達成するための他のより詳細な方法があることは理解していますが、他に短い代替手段があるかどうか疑問に思っています。また、スプラットの限界は何ですか?ここで利用できない正当な理由は思いつきません。
ruby - splatとオプションのハッシュを同時に使用してRubyでメソッドを定義する方法は?
次のようなメソッドを定義できます。
しかし、これはhash_params
引数を必須にします。これらも機能しません:
オプションにする方法はありますか?
ruby - 引数の位置にスプラット
なぜこのコードは
これを返す
について知っていArray#flatten
ます。しかし、*
どういう意味ですか?それに関する情報を探すにはどうすればよいですか?
ruby - 「送信」ブロックと引数を渡すメッセージについてのRubyKoans
私はRubyKoansabout_message_passing.rbに取り組んでおり、次のようにmethod_missingのコードを機能させています。
このコードは機能しているようですが、* argsでスプラットが必要な理由とブロックで&が必要な理由がよくわかりません。
メソッドを定義している場合、*と&はそれぞれ配列引数とブロック引数を表すために使用されることを理解していますが、オブジェクトのメソッドを呼び出すためにsendメソッドで使用されるとはどういう意味ですか?
ruby - * ::(アスタリスクの二重コロン)はRubyで何をしますか?
私は今日Railsコードを突っ込んでいて、このスニペットに出くわしました:
アスタリスク-ダブルコロン(または、必要に応じてスプラット-ダブルコロン)は*::Date
何をしますか?
おそらく、それは特に名前空間のあるクラスのスコープと関係があります...しかし、作成者が標準クラスDate
を使用するだけでなく、それを含めるのに十分な必要があります。Date