問題タブ [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 投票する
4 に答える
5929 参照

c++ - 並列プログラミングと C++

私は最近、並列コンピューティングとプログラミングについて多くのことを書いてきましたが、並列コンピューティングに関しては多くのパターンが出てくることに気付きました。Microsoft は、Microsoft Visual C++ 2010 コミュニティ テクニカル プレビュー (Parallel Patterns Library という名前) と共にライブラリを既にリリースしていることに注意してください。C++ で並列プログラムを作成する際に、従うイディオムやパターンはありますか?

0 投票する
12 に答える
22063 参照

unix - シェルスクリプトで $PATH 要素を操作するにはどうすればよいですか?

PATH のようなシェル変数から要素を削除する慣用的な方法はありますか?

それは私が取りたいです

残りの変数を破壊することなく、を削除または置換します。新しい要素を任意の位置に配置できる/path/to/app/binようにするための追加のポイント。ターゲットは明確に定義された文字列によって認識され、リスト内の任意の場所に出現する可能性があります。

私はこれが行われたのを見たことがあることを知っており、おそらく自分で何かをまとめることができますが、私は良いアプローチを探しています. 移植性と標準化はプラスです。

私は bash を使用していますが、お気に入りのシェルでも例を歓迎します。


ここでのコンテキストは、数十の実行可能ファイルを生成し、ファイルシステムにデータを隠し、環境変数を使用する大規模な科学分析パッケージの複数のバージョン (分析を行うためのものと、フレームワークで作業するためのもの) を便利に切り替える必要があるというものです。これらすべてのものを見つけるのに役立ちます。バージョンを選択するスクリプトを書きたいのですが$PATH、現在アクティブなバージョンに関連する要素を削除して、新しいバージョンに関連する同じ要素に置き換える必要があります。


$PATHこれは、ログイン スクリプトなどを再実行するときに要素の繰り返しを防止するという問題に関連しています。


0 投票する
16 に答える
3218 参照

c++ - 経験から学んだ C++ 関連のイディオム、誤解、落とし穴は何ですか?

経験から学んだ C++ 関連のイディオム、誤解、落とし穴は何ですか?

例:

changeS が const メンバー関数であることを知っていても、オブジェクトの値を変更しています。したがって、const メンバー関数は、すべての変数を const として扱うことを意味するだけであり、実際にすべてのメンバーを const のままにするという意味ではありません。(なぜですか?メンバー関数の const キーワードは、char *p; を char * const p; として扱い、const char *p; としてではありません。

したがって、これは p が他の何かを指すことができないことを意味します。p のデータを変更できないわけではありません。

0 投票する
10 に答える
29577 参照

language-agnostic - プログラミングイディオムとは?

「プログラミングの慣用句」という言葉が、あたかも一般的に理解されているかのように飛び交っています。それでも、検索結果とstackoverflowにはすべてが表示されます...

マイクロ より:

  • 変数のインクリメント
  • 無限ループの表現
  • 変数値の交換

ミディアムに:

マクロにするには:

「プログラミングイディオム」の単一の共通定義はありますか? 「プログラミングイディオム」は多くのスコープで使用されているため:

  • マイクロ: 構文のニュアンスまたは一般的な構文
  • 中: 一般的なスタイルとパターン
  • マクロ: イディオムとしてのプログラミング パラダイム

これらのスコープのいずれかでフレーズを使用することは有効ですか? これまでの回答は、構文イディオムに焦点を当てています。他のものも有効ですか?

0 投票する
8 に答える
1240 参照

c++ - 列名のベクトルを使用して、SQL ステートメントを生成する

私の職場で定期的に解決する必要がある問題は、ユーザーが指定したテーブル/列名に基づいて SQL ステートメントを作成する方法です。私が対処しようとしている問題は、列名の間のコンマです。

1つのテクニックは次のようになります。

別のテクニックは次のようになります

私は、これらの実装のいずれにも特に夢中になっているわけではありません。

コードを読みやすく、理解しやすく、維持しやすくするために、この問題に対処する他の方法のアイデアを聞くことに興味があります。

どのような代替技術が利用可能ですか?

0 投票する
11 に答える
2954 参照

c - 興味深い C リンク リスト イディオム

私は C 職の面接を受けていましたが、そこで彼らは私が以前に遭遇したことのないイディオムを提示されました。これは、リンクされたリストを含むさまざまなアルゴリズムの実装を簡素化するトリックであり、他の誰かがこれに遭遇したかどうか疑問に思っています.

次のように定義されたリンク リスト レコードがあるとします。

リスト全体がレコード内の値に関してソートされたままになるように、新しいレコードを挿入する関数が必要です。次の実装は、読みにくいとはいえ、私が使用したどの実装よりも単純です。

関数が呼び出されると、r はリストの先頭ポインターを指します。while ループの間、r が更新されてnext、新しいレコードを挿入したいポイントの直前にあるレコードのフィールドを指すようになります。関数の最後の行は、リストのヘッド ポインターを更新します (挿入がが最初に発生する) またはnext前のレコードのフィールド、これは非常にクールです。

いくつかの質問:

  • このイディオムには名前がありますか、それとも文献で言及されていますか?

  • C言語で似たようなものは他にありますか?

私は C をかなりよく知っていて、ポインターと間接参照をかなりよく理解していると思っていましたが、これは完全に理解するのに時間がかかりました。

0 投票する
41 に答える
1137921 参照

javascript - var functionName = function() {} vs 関数 functionName() {}

私は最近、他の誰かの JavaScript コードの保守を始めました。私はバグを修正し、機能を追加し、コードを整理してより一貫性のあるものにしようとしています。

以前の開発者は、関数を宣言するために 2 つの方法を使用していましたが、その背後に理由があるかどうかはわかりません。

2 つの方法は次のとおりです。

これら 2 つの異なる方法を使用する理由と、それぞれの長所と短所は何ですか? ある方法ではできて、他の方法ではできないことはありますか?

0 投票する
8 に答える
24648 参照

java - 「Execute Around」イディオムとは何ですか?

私が聞いてきたこの "Execute Around" イディオム (または類似の) とは何ですか? なぜそれを使うことができ、なぜそれを使いたくないのでしょうか?

0 投票する
11 に答える
15223 参照

java - Java 文字列パラメータ

私は.netのバックグラウンドから来ており、ブール値を返し、パラメーターを介して渡された文字列を変更するメソッドを作成する受け入れられた方法を知りたいです。Java では文字列が不変であることを理解しているため、以下のスニペットでは常に空の文字列が生成されます。ブール値のみを返すように制約されています。例外はスローできません。String クラスを、たとえば StringHolder でラップする必要がある場合、どのパッケージでこれを見つけることができますか?

0 投票する
7 に答える
266 参照

python - 一連のステートメントをマッピングするための最もpythonicな形式?

これは、しばらくの間私を悩ませてきたものです。Python を学ぶ前に Haskell を学んだので、多くの計算をリストへのマッピングとして考えるのが好きでした。これは、リスト内包表記によって美しく表現されています (ここでは Pythonic バージョンを示しています)。

ただし、多くの場合、x に対して複数のステートメントを実行する必要があります。たとえば、次のようにします。

これはすぐに不格好になり、読みにくくなります。

これに対する私の通常の解決策は、これを for ループに戻すことです。

これについて私を悩ませていることの1つは、空のリスト「結果」を初期化する必要があることです。それは些細なことですが、私を不幸にします。代替の同等の形式があるかどうか疑問に思っていました。1 つの方法は、ローカル関数を使用することです (それは Python で呼び出されているものですか?)

上記の 2 つの形式のいずれかに特定の利点/欠点はありますか? それとももっとエレガントな方法がありますか?