問題タブ [initializer]
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.
c# - C#のオブジェクト初期化ブロックで拡張メソッドを使用する方法はありますか?
以下の簡単なデモは、私がやろうとしていることを示しています。実際のプログラムでは、LINQ to SQL select式のリストを読み取っているため、オブジェクト初期化ブロックを使用する必要があります。データベースから読み取ってオブジェクトに格納したい値がありますが、オブジェクトその値に設定できる単純なプロパティがありません。代わりに、XMLデータストアがあります。
オブジェクトの初期化ブロックで拡張メソッドを呼び出すことができず、拡張メソッドを使用してプロパティをアタッチできないようです。
それで、私はこのアプローチで運が悪いのでしょうか?唯一の選択肢は、基本クラスの所有者にこのシナリオ用に変更するように説得することのようです。
BaseDataObjectをサブクラス化する既存のソリューションがありますが、これにも問題があり、この単純な例には表示されません。オブジェクトは、BaseDataObjectとして永続化および復元されます。キャストとテストは複雑になります。
(mattlantからの)回答の1つは、流暢なインターフェーススタイルの拡張メソッドを使用することを提案しています。例えば:
しかし、これはLINQクエリで機能しますか?
ruby-on-rails - Rails初期化子のフィクスチャデータへの依存
アプリ全体で使用されるデフォルトを設定する初期化子があります。値は ActiveRecord モデルです。基本的に、アプリの存続期間中キャッシュしています。
レコードはデータベースにあることが保証されています。これは、他のモデルによって参照されるフィクスチャ データです。これは、すべてのテスト実行の前にデータベースがパージされるテスト環境を除いて、正常に機能します。(私はエッジ レールで実行していますが、これが最近の動作だと思います。以前はデータを手動で挿入して、テスト実行間で保持することができました。)regions.yml
フィクスチャ ファイルにも記録がありますが、フィクスチャは次の時点までロードされません。 Railsイニシャライザが完了した後。
このようなフィクスチャ データへの依存に対処する正しい方法は何ですか? または、これを構造化するためのより良い方法はありますか? リクエストごとにこれをリロードする意味がないため、 before_filter を使用したくありません。別の展開以外では変更されません。
c# - ファクトリ メソッドで ac# オブジェクト初期化子を使用することは可能ですか?
静的ファクトリ メソッドを持つクラスがあります。ファクトリを呼び出してクラスのインスタンスを取得し、できれば c# オブジェクト初期化構文を使用して、追加の初期化を行います。
対
ruby-on-rails - Ruby on Rails: イニシャライザ ファイルから rake タスクを実行するとエラーが発生する
config/initializers/custom.rb ファイルがあります
このファイルには、次の 1 行しかありません。
これは、コマンドラインから入力するときのように行を実行するだけだと思っていました。このコード行で、「ruby script/server」を実行すると、サーバーがフリーズし、エラー メッセージは出力されません。何か不足していますか?
ありがとう!
java - Java での初期化子とコンストラクターの使用
そのため、最近 Java のスキルを磨いていて、以前は知らなかった機能をいくつか発見しました。静的およびインスタンス初期化子は、そのような 2 つの手法です。
私の質問は、コンストラクターにコードを含める代わりに、いつイニシャライザーを使用するのですか? 私はいくつかの明白な可能性を考えました:
静的/インスタンス初期化子を使用して、「最終的な」静的/インスタンス変数の値を設定できますが、コンストラクターはできません
静的初期化子を使用して、クラス内の任意の静的変数の値を設定できます。これは、各コンストラクターの先頭に「if (someStaticVar == null) // do stuff」コード ブロックを配置するよりも効率的です。
これらのケースは両方とも、これらの変数を設定するために必要なコードが単純な「var = value」よりも複雑であると想定しています。そうでない場合、変数を宣言するときに単に値を設定する代わりに初期化子を使用する理由がないように思われます。
ただし、これらは些細な利点 (特に最終変数を設定する機能) ではありませんが、初期化子を使用する必要がある状況はかなり限られているようです。
確かに、コンストラクターで行われる多くのことに対して初期化子を使用できますが、そうする理由は本当にわかりません。クラスのすべてのコンストラクターが大量のコードを共有している場合でも、プライベートな initialize() 関数を使用する方が、初期化子を使用するよりも理にかなっているように思えます。コンストラクタ。
何か不足していますか?イニシャライザを使用する必要がある状況は他にもたくさんありますか? それとも、非常に特定の状況で使用するためのかなり限定的なツールですか?
c++ - for ループ初期化子で 2 つの異なる型の変数を定義する方法はありますか?
for ループで同じ型の 2 つの変数を定義できます。
しかし、異なる型の変数を定義することは違法です:
これを行う方法はありますか?i
(ループ内で使用する必要はありません。ただj
.)
あなたが完全にハッキングされたあいまいな解決策を持っているなら、それは私にとっては問題ありません.
この不自然な例ではdouble
、両方の変数に使用できることがわかっています。私は一般的な答えを探しています。
変数のいずれかを for 本体の外に移動することは提案しないでください。ループの直後に消えなければならない反復子であり、for ステートメントをforeach
マクロに含める必要があるため、おそらく私には使用できません。
次のように使用できます。
しかし、私はそのように使用されるものが必要です:
ランタイム オーバーヘッドが発生しないようにしてください (ただし、コンパイルが遅くなる可能性があります)。
c++ - TCPL 5.9.9(C ++):独自の初期化子で名前を使用する意味はどこにありますか?
これは、Stroustrupの「C++プログラミング言語」の最新バージョンからの質問です。
私はここ数日、頭の中でこれを熟考してきました。
私が思いつくことができる唯一のこと(そしてこれはおそらく間違っています)は次のようなものです:
私の意図は、スタックの上位にある何かのアドレスを取得することです。これは意味がありますか?他に誰か答えがありますか?これは第5章(ポインター、配列、および構造)にあるため、本の後半で答えに何かが含まれるべきではないことを忘れないでください。
c++ - C ++の静的コンストラクター?プライベート静的オブジェクトを初期化する必要があります
プライベート静的データメンバー(すべての文字azを含むベクトル)を持つクラスが必要です。JavaまたはC#では、クラスのインスタンスを作成する前に実行される「静的コンストラクター」を作成し、クラスの静的データメンバーを設定できます。これは1回だけ実行され(変数は読み取り専用であり、一度だけ設定する必要があるため)、クラスの関数であるため、プライベートメンバーにアクセスできます。ベクトルが初期化されているかどうかを確認するコードをコンストラクターに追加し、初期化されていない場合は初期化することもできますが、必要なチェックが多数発生し、問題の最適な解決策とは思えません。
変数は読み取り専用になるので、public static constにすることができるので、クラスの外で一度設定できますが、もう一度、醜いハックのように思えます。
インスタンスコンストラクターでプライベート静的データメンバーを初期化したくない場合、クラスにプライベート静的データメンバーを含めることは可能ですか?
ruby-on-rails - レールの環境固有の初期化子?
特定の環境下でのみ初期化子を実行するようにレールを構成できますか? 私の場合、開発ボックスで Imagemagick を使用するにはペーパークリップをハックする必要があったため、本番環境ではなく、開発環境にのみ適用するモンキーパッチ コードがあります。そのモンキーパッチは config\initializers にファイルとして保存されます。
guides.rubyonrails.org サイトは、これができることを示していません。できない場合は、このパッチをリポジトリにチェックインしないと思いますが、それは理想的ではありません。
c# - C# ディクショナリ初期化子のコンパイルの不一致
次のコードはコンパイルされますが、次のエラーで失敗しますNullReferenceException
。
「失敗」とマークされた行を次のように置き換えると、(予想どおり) 機能します。
失敗した構文には何か目的がありますか? 他のケースで正常に使用できますか? それとも、これはコンパイラの見落としですか?