問題タブ [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.
ruby - 引数がない場合に stdin に対して実行するスクリプト。それ以外の場合、入力ファイル =ARGV[0]
これは非常にうまく機能します。短くするための改善点があるかどうか疑問に思っていますか?
language-agnostic - イディオムとパターン
プログラミングの文脈において、イディオムはパターンとどう違うのでしょうか?
私はこれらの用語を同じ意味で使用しており、通常、私が何かを呼んだのを聞いた最も一般的な方法、または現在の会話で最近呼ばれた方法に従います。たとえば、「コピー スワップ イディオム」や「シングルトン パターン」などです。
私が思い付くことができる最良の違いは、ほとんど文字通りにコピーされることを意図したコードはpatternと呼ばれることが多いのに対し、文字通りに解釈されることを意図していないコードはidiomと呼ばれることが多いですが、常にそうであるとは限りません。これは、文体や流行語の違い以上のものではないようです。それは、用語がどのように使用されているかについてのあなたの認識と一致していますか? セマンティックの違いはありますか?
ruby-on-rails - このRubyイディオムに代わるより良い方法はありますか?
私は自分のコントローラーでこのコードをたくさん書いていることに気づいています:
理由は毎回変わるので、私がここで行っていることにこだわる必要はありません。create
しかし、パラメータの値をチェックして、またはに渡す前に変更する必要がある状況はたくさんありますupdate_attributes
。
3回繰り返すparams[:task][:completed_at]
のはとても気分が悪いです。これを行うためのより良い方法はありますか?
terminology - 慣用句のペアのリスト
プログラミングで使用する慣用句の辞書をどこかで見たのを覚えています。
- 、get
- 、-など。set
open
close
allocate
free
URLを覚えている人はいますか?
python - Python のメタプログラミング パターン カタログはありますか?
Pythonクックブックを読んだばかりです。本は素晴らしいです。
この本の最も良い使い方は、実際の問題のあるアプリケーションで Python を示す多くの例を提供することだと思います。イディオムの多くには、メタプログラミング手法が含まれています。
Pythonのメタプログラミングのイディオムをまとめたカタログはあるのだろうか?
Python Cookbook には、豊富な例とテクニックがあります。しかし、Gang of Four の Design Patterns book のように、各テクニックに特定の名前を付け、ソリューション テクニックの主な特徴を具体的なアプリケーション領域から抽象化するパターン カタログも必要だと思います。
java - Javaでint配列を反転するにはどうすればよいですか?
Javaでint配列を逆にしようとしています。
このメソッドは配列を反転しません。
それの何が問題なのですか?
python - 小さなファイルを読むことに関するPythonスタイルの質問
名前付きファイルを読み取り、空の行、スペースのみを含む行、または最初の文字として#を含む行を削除して、残りの行を処理する最もPython的な方法は何ですか?すべてがメモリに簡単に収まると仮定します。
注:これを行うのは難しいことではありません-私が求めているのは、最もPython的な方法です。私はRubyとJavaをたくさん書いてきましたが、気分が悪くなりました。
これがストローマンです:
私は簡潔さに興味がありますが、読みにくくなるという犠牲を払うことはありません。
r - R - データ フレームのリストを処理する慣用的な方法
30 回の実行データがあり、それぞれが別の CSV ファイル runi.csv に保存されています。i = 0:29 です。
それらをすべてリストにまとめたいとしましょう。これを行う方法を知っている最良の方法は
さらに、リストに格納されているこれらのデータ フレームのそれぞれに同じ列レイアウトがあり、"x" で識別される列と "y" で識別される列に関心があるとしましょう。
30 回の実行すべてに相当する (x, y) ペアをプロットする最も簡単な方法は何ですか? これが私が現在それを行う方法です(そして、より良い方法があるに違いないと感じています):
データを変換しようとすると、これはさらに苦痛になります。リストに格納されている各データ フレームの特定の列に関数を適用する方法がわかりません。
ここでのヘルプは非常に役立ちます。
f# - ポストコンストラクタロジックを使用して簡潔なF#クラスを定義する
このクラス定義の場合:
f2にアクセスするたびにPostProcess(文字列操作関数)が呼び出されますか?答えが「はい」で、それを避けたい場合、正しいイディオムは何ですか?これは以下の推奨事項ですか?それは私には少し冗長すぎます。
python - Python での不必要なスライスのコピーを避ける
このような場合に無意味なスライスのコピーを避けるための一般的なイディオムはありますか?
b[14:20]
スライスの作成時に不要なコピーが発生しているようです。メモリ内に新しいスライスを作成して与えるextend
のではなく、「現在のオブジェクトのこの範囲のみを使用する」と言いたいです。
いくつかのメソッドは、スライス パラメーターを使用するのに役立ちます。たとえば、次のようになりますcount
。
しかし、最初の例のように、多くのextend
場合、この機能はありません。
多くのアプリケーションでは、私が話しているのはマイクロ最適化であることを認識しているので、誰かが尋ねる前に - はい、アプリケーションのプロファイルを作成しました。私の場合は心配する価値があります。
以下に1つの「解決策」がありますが、より良いアイデアは大歓迎です。