問題タブ [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 - ゼロ、1、または多数の入力を処理する Ruby メソッドを作成するにはどうすればよいですか?
次のような Ruby メソッドがあります。
現在、これを次のように呼び出すことができます。
等々。
入力なしや nil 入力だけでなく、反復可能な入力も正しく処理するようにメソッドを変更するにはどうすればよいですか? たとえば、次のことをサポートできるようにしたいと考えています。
これは慣用的に行うことは可能ですか?もしそうなら、ゼロ、1、または多くの入力を受け入れることができるようにメソッドを書くための最良の方法は何ですか?
ruby - Rubyの属性を使用して、オブジェクトのリストを並べ替えます
Fruit
と呼ばれる構造体のリストがありbasket
ます。各Fruit
構造体にはname
(文字列)とcalories
(整数)があります。次のように並べ替えたいと思いますbasket
。
最も
Fruit
高いscalories
が最初に表示されます。たとえば、500カロリーの果物は、400カロリーの果物の前に表示されます。2つ
Fruit
のsが等しい場合calories
、大文字と小文字を区別せずに、アルファベット順で最初に来るものが最初にFruit
なります。name
たとえば、カロリーが等しい2つの果物を考えると、「バナナ」という名前の果物が「柑橘類」という名前の果物の前に来ることになります。
の定義はFruit
私が制御するものではないので、何かを混ぜFruit
たり変更したりすることを含まないソリューションを好みます。これは可能ですか?
java - インターフェイスを満たすために存在する空のメソッドのJavaにイディオムはありますか?
Foo
のようなインターフェースを実装するクラスがあるとしましょうMouseListener
。インターフェイスは 5 つのMouseListener
メソッドで構成されていますが、そのうちの 1 つだけをオーバーライドしたいと考えています ( mouseClicked()
)。他の方法をフォーマットする標準的で慣用的な方法はありますか?
私の傾向は次のように書くことでした:
私は、メソッドが誤って空白のままになっているのではなく、意図的に空白になっていることを明示するのが好きですが、基本的に何もないために放棄されたすべての垂直方向のスペースに夢中になっているわけではありません。次の形式も見ました。
私は一般的にこれで問題ありませんし、作者の意図も理解していますが、(推奨)@Override
注釈が追加されると非常に見苦しくなります。
私は特に経験豊富な Java コーダーではないので、慣習があるかどうか尋ねてみようと思いました。考え?
python - Python のイディオム "if __name__ == '__main__'" に相当する clojure は何ですか?
私は clojure に手を出していますが、この一般的な python イディオムに相当する clojure (および/または Lisp) を特定しようとして少し苦労しています。
慣用句では、Python モジュールの下部には、多くの場合、少しのテスト コードと、コードを実行するステートメントがあります。たとえば、次のようになります。
これは、単純なアドホック テストに役立ちます。通常、このモジュールは と書くことfrom mymodule import MyClass
で使用されますが、この場合_runTests()
は が呼び出されることはありませんが、最後にスニペットがあればpython mymodule.py
、コマンド ラインから直接入力して実行することもできます。
Clojure (および/または一般的な Lisp) に同等のイディオムはありますか? 私は本格的な単体テストライブラリを求めていません(まあ、私はそうですが、この質問ではそうではありません)、特定の状況でのみ実行されるコードをモジュールに含めたいだけです。私が取り組んできたコードを実行する簡単な方法ですが、通常のモジュール/名前空間のようにファイルをインポートできます。
string - Python:Noneを空の文字列に変換する最も慣用的な方法は?
次のことを行うための最も慣用的な方法は何ですか?
更新: str(s)を使用するというTryptichの提案を取り入れています。これにより、このルーチンは文字列以外の他のタイプでも機能します。Vinay Sajipのラムダの提案にひどく感銘を受けましたが、コードを比較的単純に保ちたいと思います。
multithreading - マルチスレッドプロセスでのデッドロックを回避する
デッドロックを回避するために誰かが従うべきベストプラクティス/イディオムは何ですか?
ruby-on-rails - レールのビューでhtml要素にクラス属性を追加する最もクリーンな方法は何ですか?
部分ビュー用の Rails コードを書いていますが、誰かが既にここのサイトにログオンしている場合にのみコメント フィールドを表示したいと考えています。
サイトのメンバーではない人がページを表示した場合、shared/comment_not_logged_in
フラグメントを渡す必要があります。
ただし、同じチェックを実行して、ページがクラス属性「missing_your_voice」をここで囲んでいる div 要素に追加する必要があるかどうかを判断できない理由について、私は完全に困惑しています。
同じイディオムで、"missing_your_voice" if not current_user
irb とコンソール デバッガーで文字列を返します。
ここで何が間違っていますか?
ruby - 形状継承の例と「Ruby流」
10 年間の C++ から Ruby への移行を模索する中で、最も単純なことを達成する方法を次から次へと推測しています。以下の古典的な形状の派生例を考えると、これが「Ruby Way」であるかどうか疑問に思います。以下のコードに本質的な問題はないと信じていますが、Ruby の能力をフルに活用していないと感じています。
これは「The Ruby Way」で実装されていますか? そうでない場合、これをどのように実装しますか?
c# - 派生した値をプロパティとして公開するのは良い形式ですか?
7 つの潜在的な入力を考慮して、重要な値を導出する必要があります。ボブおじさんは、それほど多くのパラメーターを持つ関数を避けるように私に促したので、クラスを抽出しました。すべてのパラメーターがプロパティになりました。引数のない計算方法が残っています。
「あれ」は、「プロパティかもしれないが、慣用的な C# かどうかはわからない」と思います。
最終結果をプロパティとして、または引数なしのメソッドとして公開する必要がありますか? 平均的な C# プログラマーは、プロパティを混乱させたり不快に感じたりするでしょうか? Alt.Net クラウドはどうですか?
後者の場合:中間結果を [private] properties として宣言する必要がありますか? 重いメソッド抽出のおかげで、いくつかの中間結果が得られました。これらの多くは、パブリック API の一部であってはなりません。ただし、それらのいくつかは興味深いものになる可能性があり、それらにプロパティとしてアクセスできれば、私の式はよりきれいに見えます。
ハッピー実験部:
VS2008 で自分のコードをデバッグしているときに、中間結果を計算するメソッド呼び出しの上にマウスを置いたままにして、戻り値が表示されることを期待していることに気付きました。すべてのメソッドをプロパティに変換した後、中間結果をプロパティとして公開すると、デバッグに非常に役立つことがわかりました。私はそれで十分満足していますが、可読性について長引く懸念があります。
暫定的な値の宣言はより乱雑に見えます。ただし、式は括弧なしで読みやすくなります。メソッド名を動詞で始める必要はもうありません。対照的に:
おそらく、私は 10 年間 Python でコーディングしてきたことを説明する必要があります。私は、自分のコードを書くよりも呼び出しやすくするために余分な時間を費やす傾向にありました。ただし、Python コミュニティがこのプロパティ指向のスタイルを受け入れ可能な「Pythonic」と見なすかどうかはわかりません。
unit-testing - 匿名クラスをテストする方法は?
このイディオムに精通している必要があると思います。これは、Javaのクロージャの言い訳のようなものです。
私はこのイディオム/パターンをよく使用しましたが、最近それをテストしようとしました、そしてそれは私に頭痛を与えています...
ResourceManagerクラスとClientクラスを分離してテストするにはどうすればよいですか?私は、これがそれらを非常に緊密に結合しているので、簡単にそれを行うことができないことを発見しました。
アイデアは大歓迎です。
よろしく