問題タブ [initialization]
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.
java - Java でコンストラクターの前に最終変数を初期化する
Javaコンストラクタで最終変数を使用する解決策はありますか? 問題は、最終フィールドを次のように初期化した場合です。
その後、コンストラクターで使用できません。Java は最初にコンストラクターを実行し、次にフィールドを実行します。コンストラクターの最終フィールドにアクセスできるようにするソリューションはありますか?
c# - デザインの質問: 初期化をどのように処理しますか?
Log クラスなど、(c#) コード全体で広く使用されるクラスがあるとします。ログが特定のディレクトリ内の XML ファイルにエントリを書き込むとします。ここで、必要な情報でクラスを初期化するようにユーザーに強制する 1 つの試みは、デフォルト (パラメーターなし) のコンストラクターを非公開にし、logdirectoryパラメーターを取るコンストラクターを提供することです。これの欠点は、ユーザーがログに何かを書き込む必要があり、したがって Log クラスのインスタンスが作成されるたびに、パラメーターを提供する必要があることです。
他にどのようなオプションがありますか? 返信ありがとうございます。
c# - C#: リスト追加オブジェクト初期化子
このクラスがあるとしましょう:
以下を可能にするために、そのクラスに何をしなければなりませんか:
oop - メンバー変数をコンストラクターで初期化する必要があるのはなぜですか?
私が最初にオブジェクト指向プログラミング言語で働き始めたとき、私は次の規則を教えられました:
クラスでフィールドを宣言するときは、まだ初期化しないでください。コンストラクターでそれを行います。
C#の例:
しかし、最近誰かが私にそれをする理由を尋ねたとき、私は理由を思い付くことができませんでした。私はC#(または他のプログラミング言語、さらに言えば、これはすべてのオブジェクト指向言語で実行できると信じているため)の内部動作に精通していません。
では、なぜこれが行われるのですか?セキュリティですか?プロパティ?
perl - Perl CGI スクリプトの起動時間を短縮するにはどうすればよいですか?
私はいくつかの CGI スクリプトを開発しており、「使用」を使用して多くのモジュールをインポートするときに生成される「開始時間」を短縮する解決策を見つけようとしています。
アップデート:
提供されたソリューションは素晴らしいものですが、私が取り組んでいるスクリプトは、コンソール モードと CGI モードの両方で実行され、いくつかの典型的な HTTP 環境変数が存在するかどうかをチェックします。
「コンソール モード」ではデータを「通常どおり」ダンプし、「html モード」ではリアルタイムで置換を行い、他の HTTP ヘッダーをクライアントに送信します。
どちらの場合も起動時間を改善したいと思います。
delphi - さまざまなWindowsマシンにINIタイプの設定やDBファイルを保存するためのユニバーサルアプローチ
OK、本当の告白が最初です。たぶんそれは私だけかもしれませんが、Windowsマシンの「プログラム設定のベストプラクティス」は、Microsoftのデータアクセス戦略よりも変更されたように感じることがあります。私はまだXPを実行していて、途中のどこかで、MSがアプリのすべてのデータを保存する場所などを「見つめている」だけでした。コーディングしたすべてのマシンを制御したので、実際には問題ではありませんでした。
今、私は「野生の」アプリを書いていて、Win98SE以降をサポートしています。私はこれらすべてにもう一度注意を払わなければなりません。:-\
主に新しいコンピューターへの簡単な移行を行う必要があるため、アプリの設定にレジストリを使用することはあまり好きではありません。INIファイルを使用することを好み、タスクに使用する古いINIコンポーネントがいくつかあります(Raize、いつもの)。他のサードパーティコンポーネントがこれをより簡単に/より簡単にするのであれば、私は他のサードパーティコンポーネントへの提案を受け入れます。
基本的に、アプリの設定を保存する必要があります(オプション設定の記憶など)。
私が読んだ:
ユーザーが構成可能なアプリケーション設定を保存するためのレジストリとINIファイル
HKEY_LOCAL_MACHINEの代わりにプログラム設定を保存する場所は?
win32プログラムはファイルをどこに保存する必要がありますか?
プログラムの構成ファイルとログファイルをWindowsに保存するのに最適な場所は?
...少なくともこの質問では私だけではありません...; )
(わずかに異なる角度からではありますが、繰り返しの質問の一部についてお詫びします)。
%APPDATA%/ MyProgramを使用して、そこにすべてのデータを保存できるように聞こえますが、これはWin98SE以降のすべてのWindowsフレーバーで普遍的に正しいですか?そうでない場合、最善のアプローチは何ですか、そしてそのアプローチはいつ生まれましたか?
私が本当に探しているのは、正直なところ、この問題を解決する最も簡単な方法です。すべてのインスタンスで「マイプログラムのデータフォルダ」を取得するための、(可能であれば)シンプルで簡単で信頼性の高い方法が必要です。 。上記はそれを達成しますか?
c++ - C++ テンプレートのメンバーへの静的ポインターの初期化
次のように、メンバへの静的ポインタを持つテンプレート クラスがあります。
私の質問は、メンバーへの静的ポインターの初期化子を作成する方法です。私は明らかなケースを試しました:
しかし、それはうまくいきませんでした。何か案が?
java - 初期化されていない変数の可能性があるものをチェックすることは可能ですか?
私は再帰的な方法に取り組んでいます...
メソッドが各再帰ステップでmirror
異なるオブジェクトを参照したり、最初の反復後にステートメントを繰り返したりすることは望んでいません。のインスタンスが既に初期化されているかどうかを確認するために、if ステートメント チェックを入れることが可能かどうか疑問に思っています。その場合、 andステートメントはスキップされます。BinaryTree
mirror = clone(tree)
mirror
mirror = new BinaryTree()
mirror = clone(tree)
メソッドに引数として渡すか、クラス定義で定義しない限り、これは不可能だと思いmirror
ます...しかし、確認したいと思います。
どんなアドバイスでも大歓迎です。
- - - - -編集 - - - - - -
メソッドのシグネチャを変更することは許可されていないため、実装でオブジェクトを渡すことはできません。ミラー ツリーを作成することはできますが、元のツリーをミラーに変更することは避けたいと考えています。渡された元のツリーのミラーである新しいオブジェクトを作成しようとしましたBinaryTree
が、再帰的に行う方法が実際にはわかりません。
mysql - g ++ / mysql/redhatのintの問題
私はかなり長い間Cを作成しておらず、MySQL C APIを使用してアプリを作成しており、redhatでg++でコンパイルしています。
だから私はprintfsでいくつかのフィールドを出力し始めます...私が使用していたPRO*Cで(何年も前にsuseで)oracle apiを使用して、intを選択して次のように出力できます:
mysql intsでそれを実行しようとしましたが、8つの乱数が表示されました...これはmysql apiの問題であり、サーバーの構成の問題であると考え、修正しようとして数時間を無駄にしましたが、修正できませんでした。そして、私ができることがわかりました:
整数を正しく出力します。抽出している値の計算を行っていないため、これは問題のない解決策だと思いました。
私がいくつかのものを数えようとするまで....
私は簡単なことをしました:
再び8桁の乱数を取得しています...このマシンのintとの取引が何であるかを理解できませんでした。
次に、intをゼロに初期化すると、適切な数値が得られることに気付きました。
誰かがint変数をゼロに初期化するために必要な条件を教えてもらえますか?古いコードベースで毎回これを行ったことを思い出せません。また、mysql_stmtコードをモデル化した例では見られませんでした...
私が欠けているものはありますか?また、これが毎回必要であることを忘れてしまった可能性もあります
ありがとう...