問題タブ [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 に答える
200 参照

python - set などの Python の「ネイティブ」型に関するドキュメントを探す

私は Python を学ぼうとしていますが、現在の問題に対する答えにたどり着くことができましたが、将来、より良い答えを見つける方法を知りたいと思っています。

私の目標は、文字列のリストを入力として取り、文字列内の文字の結合である文字列を返すことでした。

「abc」を返します。

私は次のように実装しました:

for ループは不要だと感じ、よりきちんとした、より pythonic(?) な改善を探しました。

最初の質問set.union():の代わりにクラス メソッドを使用することにつまずきましたset1.union(set2)。標準の Python ドキュメントでこれを見つけることができたはずですか? 私はそこでそれを見つけることができませんでした。

そこで、次のように set.union() を使用してみました:

繰り返しますが、私はつまずいて、最終的に次のように呼び出す必要があることに気付きました。

2番目の質問set.union:これは、 (事実上)次のように宣言されていることを意味すると思います

そしてそうではない

あれは正しいですか?(私はまだスプラット '*' の使い方を学んでいます。)

3 番目の質問: の署名に関するドキュメントはどこにありset.union()ますか? set/freezeset doc には見当たりませんでしたし、inspectモジュールから何も得られませんでした。モジュールかどうかさえわかりませんsetが、タイプのようです。それはモジュールで定義されていますか、それとも何ですか?

私の複雑な質問を読んでくれてありがとう。もっと「Pythonドキュメントをナビゲートするにはどうすればいいですか?」です。「Pythonコードでこれを行うにはどうすればよいですか?」より。


jonrsharpe のコメントへの対応:

ああああ!私は、個別の静的メソッドとインスタンス メソッドを定義する C++ に慣れています。あなたがそれを説明した今、私は何が起こっているのかを本当に見ることができます.

私が違うことをするかもしれない唯一のことは、それを次のように書くことです

機能的には、文字列が異なる役割を果たしていない場合に、strings[0]文字列とは異なる扱いをするのが面倒だからです。strings[1:]それらの 1 つを呼び出さなければならない場合は、とにかくそれを行うset()ので、それらすべてを呼び出したいと思います。union()しかし、それはただのスタイルですよね?

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

javascript - リストを関数の引数に展開していますか?

引数リストと 2 つのアリティ関数があるとします。

引数を関数の引数に展開するにはどうすればよいですか? - 例えば、Python でできること: f(*args).

私が試したこと(より多くのJavaScriptスタイルだと思います):

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

ruby - ループ内の値を変更するRubyスプラット演算子

オプションの量の引数とハッシュを取ることができるメソッドを定義したいです。

splat および double splat 演算子を正しく理解していれば (これは疑問です)、配列bをメソッドに送信し、何かが含まれている場合にのみfrombarを追加する必要があります。しかし、何か奇妙なことが起こります - 以下のいくつかのスニペットで説明してみますnew_hashfoo

しかし、今、何かが起こります

bのループ内での値が変更されたのはなぜfooですか?

edit反復ごとに新しい配列が作成されることを反映するようにコードを更新しました

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

ruby - splat を使用した Ruby 送信が期待どおりに機能しない

JSON ペイロードからデータをサニタイズするのに役立つサービス クラスがあります。

問題は、クラス メソッドを呼び出すと、列挙子が返されることです。

メソッドを評価して返す代わりに:

私はコンソールで遊んでみましたが、それは、Ruby ドキュメントが示唆していることに反して、splat 配列が個々の引数に変換されていないためです。Object#send でこの問題が発生した人はいますか? どんな助けでも大歓迎です!

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

ruby - 配列の 2 番目の要素を見つける

これがどのように機能しないのかわかりません。プログラムは、クラス Array で 2 番目のインスタンス メソッドを取得し、配列の 2 番目のオブジェクトを返すことになっています。

私は何を間違っていますか?クラス Array を削除して 2 番目にテストすると、正常に動作しますか?

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

arrays - スプラットの説明

http://learnxinyminutes.com/docs/julia/でジュリアについて読んでいるときに、私はこれに出くわしました:

これは完全に良い説明だと確信していますが、主なアイデア/利点を理解できません。

私がこれまでに理解したことから:

  1. 関数定義でスプラットを使用すると、関数に与えられる入力引数の数がわからないことを指定できます。1 かもしれないし、1000 かもしれません。これの利点は実際にはわかりませんが、少なくとも私は理解しています (私は願っています)これのコンセプト。
  2. 関数への入力引数としてスプラットを使用すると... 正確には何ですか? そして、なぜ私はそれを使うのですか?配列の内容を引数リストに入力する必要がある場合は、代わりに次の構文を使用します: some_array(:,:) (3D 配列の場合、some_array(:,:,:) などを使用します)。

これが理解できない理由の一部は、タプルと配列の定義に苦労していることだと思います.タプルと配列のデータ型です(Int64はデータ型です)。それともデータ構造で、データ構造とは何ですか? 配列と聞くと、通常は 2D 行列を思い浮かべますが、プログラミングのコンテキストで配列を想像するのに最適な方法ではないでしょうか?

おそらくデータ構造とは何かについての本を一冊書けるだろうし、Google で検索することもできるだろうが、主題を深く理解している人はそれをもっと簡潔に (そしておそらく単純化して) 説明できることがわかった。それでは、ウィキペディアの記事が可能であるとしましょう。

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

ruby - ルビースプラットの使い方

テキストでこれの図に出くわしましたが、IRB シェルで試してみるとエラーが発生しました。この次のコードは合法ですか? そうでない場合は、中間の配列を取得する簡単な方法があります (ソートされた配列を想定した 1 つまたは 2 つの要素の中央値など)。

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

ruby - スプラット演算子とメソッドのオーバーライド

複数の引数を取るメソッドをオーバーライドする子クラスを持つ基本クラスがあります。

これはうまくいきます。ただし、親に foo を呼び出すメソッド foobar があるとします。

foo_args は 1 つの配列であるのに対し、Child.new.foo は 2 つのオブジェクトを想定しているため、これを Child インスタンスで呼び出すと ArgumentError が発生します。これを回避する方法はありますか?

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

javascript - JavaScript オブジェクト (新規) にスプラ?

ECMA6 機能を使用せずにオブジェクト間でスプラットするにはどうすればよいですか?

試み

can私はただできる:

で試すときfoo

このエラーが発生します (を呼び出しているためnew):