問題タブ [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 - コマンドラインオプションを使用するための ruby 慣用句
中規模の (非 OO の) perl プログラムを移植して Ruby を取り上げようとしています。私の個人的なイディオムの 1 つは、次のようにオプションを設定することです。
perl では、ちょっと歯を食いしばって $opt_v を (事実上) グローバルにします。
ルビーでは、多かれ少なかれ正確に同等です
$opt_verbose は、クラスがアクセスできるグローバルです。クラスにそのようなグローバルフラグについて知ってもらうことは...ええと...間違っているようです。これを行うOO慣用的な方法は何ですか?
- すべてのオプション関連の処理はメイン ルーチンに任せ、クラスは処理方法を決定するものだけをメイン ルーチンに返すようにしますか?
- クラスにオプションの動作を実装させ (たとえば、冗長にする方法を知っている)、attr_writer のようなものを介してモードを設定しますか?
更新: optparseを示唆する回答をありがとう、しかし、私が求めているのはコマンドラインオプションを処理する方法ではなく、グローバルプログラムの状態を効果的に設定するコマンドラインオプションとクラスの関係であることをより明確にする必要がありました理想的には、そのようなものから独立している必要があります。
ruby - 経験豊富なプログラマーが使用する一般的な Ruby プログラミングのイディオムを教えるチュートリアルはありますか?
Ruby のCode Like a Pythonista: Idiomatic Python に相当するものを探しています
望ましい機能:
- 読みやすい
- すべてのトピックをカバーする 1 つのドキュメント: ヒント、コツ、ガイドライン、警告、および落とし穴
- 本より小さいサイズ
- イディオムは、標準ディストリビューションではすぐに使用できるはずです (
% sudo apt-get install ruby irb rdoc
)
可能であれば、チュートリアルのサンプルコードとその意味とともに、回答ごとに 1 つのチュートリアルを入れてください。
アップデート:
これらは、私が遭遇した上記の説明リソースに最も近いものです。
language-agnostic - (単純な) 変数「トグル」をどのように記述しますか?
次の慣用句が与えられます。
1)
p>2)
p>3)
p>4)
p>どちらが好きですか、なぜですか?
最も一般的な実行パスはcondition
false であると想定しています。
私は 1) を使用することを学ぶ傾向がありますが、なぜそれが好きなのかはよくわかりません。
注: 次の例はより単純で、読みやすいかもしれませんが、すべての言語がそのような構文を提供しているわけではありません。また、変数の割り当てを拡張して将来複数のステートメントを含めるのには適していません。
coldfusion - ColdFusion:リストから最初のnull以外の値を選択します
JavaScriptでは、次のことができます。
また、JavaScriptは'または'演算子を短絡するため、'result'は'b'の値を取得します。
この1行のイディオムでColdFusionでこれを実行したいのですが、思いつくのは次のとおりです。
誰かがこれより良いことをすることができますか?
ruby - Rubyのハッシュイディオムのハッシュ?
Rubyでハッシュのハッシュを作成すると、便利な2次元(またはそれ以上)のルックアップが可能になります。ただし、挿入するときは、最初のインデックスがハッシュにすでに存在するかどうかを常に確認する必要があります。例えば:
新しいハッシュが自動的に作成される場合は、次のことを行うことをお勧めします。
同様に、最初のインデックスがまだ存在しない値を検索する場合は、「[]」エラーの未定義のメソッドを受け取るよりも、nilが返される方が望ましいでしょう。
この動作をするHashラッパークラスを作成することもできますが、このタスクを実行するための既存のRubyイディオムはありますか?
c# - イベント宣言に匿名の空のデリゲートを追加することの欠点はありますか?
私はこのイディオムについていくつかの言及を見てきました(SOを含む):
利点は明らかです。イベントを発生させる前に null をチェックする必要がなくなります。
ただし、欠点がある場合は理解したいと思っています。 たとえば、広く使用されていて、メンテナンスの手間がかからないほど十分に透過的なものですか? 空のイベント サブスクライバー呼び出しのパフォーマンス ヒットはかなりありますか?
ruby - 「nil or zero」の最高のルビーイディオム
値をチェックして、値がゼロかゼロかを確認する簡潔な方法を探しています。現在、私は次のようなことをしています:
しかし、これは非常に不器用に思えます。
c++ - リストのチェックとハンドラの実行
私は次のようなコードをよく書いています。
このコードを書くことになった理由は、関数を実行させる可能性のある複数のキー コードを受け取ったとしても、2 番目のループで関数を 1 回だけ実行する必要があるからです。
これは、最善の方法とは思えません。もっときちんとした方法はありますか?
.net - .NET はさまざまな言語の区別をなくしましたか?
特定のシナリオで使用するのが望ましい言語は常にあります。迅速なプロトタイプ開発のために、VB6 は当然の選択でした。VB6 は、シンプルなデスクトップ ユーザー インターフェイスと、標準的で単純なデータベース操作の要件を備えたプロジェクトで選択されました。低レベルのルーチンを使用してデバイス ドライバーを開発する場合は、おそらく C または Visual C++ に依存していました。ASP は、Web インターフェイスの開発の標準的な選択肢でした。大雑把に言えば、すべての言語には特定の「ドメイン」または「専門化」がありました。
.NET フレームワークでは、すべての言語が相互運用可能であり、おそらく一貫性があります。さまざまな言語のモジュールをまとめてプロジェクトに含めることができますが、最終的にはすべて同じように扱われます (すべて IL にコンパイルされます)。
これは、私たちが以前持っていた区別がもはや存在しないことを意味しますか? その差別化は必ずしも悪いものではなく、何らかの制約によるものではなく、設計によって存在していたものです。これは、.NET フレームワークとそのさまざまな言語の処理により、明らかにいくらか減少しています。
ruby - rubyコマンドラインアプリのスクリプトを作成します。これを行うための最良の方法は?
開発中のコマンドラインRubyアプリがあり、そのユーザーがプロセスの一部でフィルターとして実行されるコードを提供できるようにしたいと考えています。基本的に、アプリケーションはこれを行います。
- 一部のデータを読み込む
- フィルタが指定されている場合は、それを使用してデータをフィルタリングします
- データを処理する
フィルタリングプロセス(ステップ2)をできるだけ柔軟にしたいと思います。
私の考えでは、ユーザーは、私が定義したインターフェースを実装するオブジェクトを指すように既知の定数を設定するRubyファイルを提供できると考えていました。
私のアプリのコードは次のようになります。
これはうまくいくでしょうが、それは安っぽく感じます、そしてそれをするより良い方法があるべきであるように思われます。また、既知のクラスに既知の名前のメソッドを追加する形式でフィルターを使用することも検討しましたが、それも正しくないようでした。
このためのRubyのより良いイディオムはありますか?