問題タブ [idioms]

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 投票する
7 に答える
16036 参照

c++ - C++ プログラマーはどの C++ イディオムを使用する必要がありますか?

C++ プログラマーが知っておくべき C++ イディオムは何ですか?

C++ のイディオムとは、C++ にのみ適用できる、または他のほとんどの言語よりも C++ により適用できるデザイン パターンまたは特定のことを行う方法を意味します。

イディオムを使用する必要がある理由と、イディオムは何を達成するのですか?

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

java - Javaで単一の文字を文字列に変換する慣用的な方法は何ですか?

現在、ボックス化されたオブジェクトの作成を最小限に抑えるために、以下を使用しています。

これは慣用的な方法ですか?(私見それは少しぎこちなく感じます。)

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

ruby - ルビーセッターのイディオム

私はChartクラスに取り組んでおり、 、、および値marginを保持するパラメーターがあります。私の最初のオプションは、セッターを作成し、次のように値を設定することでした::top:bottom:right:leftmargin

これは明らかにセッターなのでいいのですが、少し考えてみると、混乱を招く可能性もあると思います。ユーザーは、マージンには:leftと の:right値しか含まれていないと考えるかもしれません。何が正しくないのでしょう。別のオプションは、削除=して通常の方法にすることです。

この構文を使用すると、何が起こっているかを簡単に把握できますが、標準のセッターではなく、marginsゲッターと競合します。そして、まだ別のオプションがあります:

これについてどう考えればいいのかわからない。私にとっては、メソッドがセッターであることは明らかですが、今回は1回の呼び出しで複数の値を設定できず、ゲッターの問題が再び発生しました。私は Ruby に比較的慣れていないので、まだすべてのイディオムに慣れていません。それで、あなたはどう思いますか?最良の選択肢はどれですか?

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

ruby - ruby でブロックを使って変数を設定する

私は Ruby で PHP のようなループを頻繁に使用していることに気づきました。言語の残りの部分が非常にきちんとしていると、違和感を覚えます。私は次のようなコードで終わります:

こんなことができたらいいなと思います

Rubyでブロックを使用して変数を設定する「きちんとした」方法はありますか?

0 投票する
9 に答える
685 参照

c++ - ジャストインタイム導出

あまり一般的ではない C++ のイディオムがありますが、これは私が過去に何度か使用してうまくいきました。それを説明するために一般的に使用されている名前があるかどうかを思い出せないようです。

mixinsCRTP、およびtype-erasureに多少関連していますが、特にこれらのいずれかではありません。

クラスに実装を追加したいが、それをクラスまたはその派生元のクラスに配置したくない場合に、問題が発生します。この理由の 1 つは、クラスが継承階層の一部であり、実装が 1 回だけ発生する可能性があるためです。

とりあえず、階層に具体的な非リーフ クラスを含める必要があるかどうか、場合によっては仮想継承がオプションになるかどうかなどの問題はさておき、次から派生するテンプレート クラスで実装を提供する 1 つのソリューションを知っています。そのテンプレート パラメータ。これにより、インスタンスを作成するときにテンプレートを使用できますが、そのオブジェクトのベースの 1 つへのポインターまたは参照によってのみオブジェクトを使用できます (大まかな意味での型消去の出番です)。

例として、侵入的な参照カウントがある場合があります。すべてのクラスは ref カウント インターフェイスから派生しますが、ref カウント自体と ref カウント メソッドの実装を 1 回だけ表示する必要があるため、それらを派生テンプレートに入れます。それを呼び出しましょうImplementsRC<T>。これで、次のようにインスタンスを作成できます。

複数のテンプレート化されたオーバーロードなどで形成されたコンストラクターの転送などについて詳しく説明しています。

それで、イディオムが何であるかを明確にしたことを願っています。私の質問に戻ります - このイディオムに受け入れられている、または少なくとも一般的に使用されている名前はありますか?

0 投票する
14 に答える
126206 参照

c++ - std :: size_tをいつ使用するか?

std::size_t代わりにforループなどを使用する必要があるのではないかと思っていますint。例えば:

一般的に、いつ使用するかに関するベストプラクティスは何std::size_tですか?

0 投票する
6 に答える
3918 参照

python - Python - 文字列が空かどうかをチェックするイディオム、デフォルトを出力

文字列が空であるかどうかを確認し、空である場合はデフォルトを出力する Python イディオムはありますか?

(UserProfileの関数のコンテキストはDjango__unicode__(self)です-基本的に、存在する場合は名と姓を出力し、両方が存在しない場合はユーザー名を出力します)。

乾杯、ビクター

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

python - Python 文字列連結イディオム。説明が必要です。

http://jaynes.colorado.edu/PythonIdioms.htmlから

「文字列をリストとして構築し、最後に ''.join を使用します。join は、リストではなくセパレーターで呼び出される文字列メソッドです。空の文字列から呼び出すと、セパレーターなしでピースが連結されます。これは Python の癖であり、むしろ最初は驚く. これは重要です: + を使用した文字列の構築は、線形ではなく二次時間です! 1 つのイディオムを学ぶ場合は、このイディオムを学びます。

間違っています: 文字列内の s: 結果 += s

右: result = ''.join(strings)"

なぜこれが本当なのかわかりません。結合したい文字列がある場合、それらをリストに入れてから ''.join. それらをリストに入れるとオーバーヘッドが発生しませんか? 明確にするために...

Python コマンドライン:

Aは本当に線形時間で、Bは二次時間ですか?

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

ruby - Rubyでオプションのパラメータのデフォルト値を指定する慣用的な方法はありますか?

オプションのパラメーター (params/options ハッシュ内) のデフォルト値をメソッドに指定するために使用される次のコードを記述する、より簡潔で慣用的な方法はありますか?

次のように単純化したいと思います。

「false」の値を指定したい場合(つまり、この例で引数として渡したい場合)をカバーするために、単に評価するのではなく、条件として実際に使用する必要があることを除いて、これはほとんど機能します。 .has_key? :verboseparams[:verbose]:verbose => false

この単純な例では、簡単に実行できることがわかりました。

しかし、私の実際のコードでは、実際には(いくつかの必須パラメーターに加えて)オプションのパラメーターが多数あり、オプションのパラメーターを params ハッシュに入れたいので、(名前で) いくつかのパラメーターのみを簡単に指定できます。それらをすべて順番にリストする必要はありません(そして、実際には必要のないものをリストする必要がある可能性があります)。

0 投票する
20 に答える
70036 参照

java - Javaの名前付きパラメータイディオム

名前付きパラメータのイディオムをJavaで実装するにはどうすればよいですか?(特にコンストラクターの場合)

JavaBeansで使用されているものではなく、Objective-Cのような構文を探しています。

小さなコード例で十分です。