問題タブ [constants]
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でのconst値の定義
すべてのコードが*.c
/*.h
ファイルのペアで編成されているCプロジェクトがあり、1つのファイルで定数値を定義する必要がありますが、他のファイルでも使用されます。この値をどのように宣言して定義する必要がありますか?
static const ...
それはファイルのようにすべき*.h
ですか?ファイルのようextern const ...
に、*.h
ファイルで定義されてい*.c
ますか?int
値がプリミティブデータ型( 、、double
など)ではなく、achar *
またはaであるかどうかは、どのように重要struct
ですか?(私の場合はですがdouble
。)
ファイル内のものを定義すること*.h
は、一般的には良い考えとは思えません。ファイルで物事を宣言する必要があり*.h
ますが、ファイルでそれらを定義し*.c
ます。ただし、extern const ...
コンパイラは値をインライン化できないため、このアプローチは非効率的であるように見えます。代わりに、常にそのアドレスを介してアクセスする必要があります。
この質問の本質は次のとおりです。複数の場所で値を使用するには、Cのファイルでstatic const ...
値を定義する必要がありますか?*.h
c++ - const メンバーは、本体ではなくコンストラクター初期化子で初期化する必要があるのはなぜですか?
const
コンストラクター本体ではなく、コンストラクター初期化子リストでクラスメンバーを初期化するように宣言する必要があるのはなぜですか?
2つの違いは何ですか?
.net - プロジェクトでの定数の宣言
プロジェクトで使用される定数宣言のこれら 2 つのアプローチを見てきました。
パブリック モジュールの定数。
NonInheritable(Sealed) クラスの定数
定数宣言に他のアプローチを使用する人はいますか?
これらのアプローチに違いはありますか、長所と短所はありますか?
ありがとう。
ruby-on-rails - Railsの定数値
フォームフィールドの生成、送信されたフォームの値が有効かどうかの確認などに使用するため、Railsアプリのどこかに保存したいデータがあります。基本的に、データを1か所に保存する必要があります。いくつかの場所でそれ。
以前はinitialize
、コントローラーでメソッドを定義し、そのメソッド内でインスタンス変数を初期化してい@graph_types = ['bar', 'line']
ました。initialize
これは実際にはすべてが(これらの値の初期化に)使用されており、インスタンス変数は後で変更される可能性があるため、悪い考えのように思われましたが、これは望ましくありません。
ここで、コントローラーのメソッドの外部で、フィルターの直後の一番上に定数を定義し、それらをフリーズしますGraphTypes = ['bar', 'line'].freeze
。
このようなデータを構成ファイルに保存したくなかったのは、余分なファイルを追跡し、ファイルを読み込んで解析する必要があるためです。このデータをデータベースに保存したくなかったのは、やり過ぎのようです。利用可能なグラフタイプを別の定数と組み合わせて、クレイジーなLEFTOUTERJOINタイプのクエリを実行する必要はありませんThemes = ['Keynote', 'Odeo', '37 Signals', 'Rails Keynote'].freeze
。このデータは特定のコントローラーにのみ関係するため、environment.rbにデータを保存したくありませんでした。
これらすべてを考慮して、私はこの「Rubyの方法」について行っていますか?
c++ - switch ステートメントで定数配列の要素をケースとして使用する
一連のキー押下を一連のコマンドにマップしようとしています。複数の場所からコマンドを処理するため、キーとコマンドの間に抽象化レイヤーを設定して、基になるキー マッピングを変更した場合にコードをあまり変更する必要がないようにしたいと考えています。私の現在の試みは次のようになります。
これをコンパイルしようとすると (gcc 4.3.2)、次のエラー メッセージが表示されます。
エラー: 'LogicalMappings' は定数式に表示できません
コンパイラがこれに問題を抱えている理由がわかりません。case ステートメントで変数を使用できない理由は理解できますが、定数はコンパイル時に評価できるため、定数を使用できるという印象を受けました。定数配列は switch ステートメントでは機能しませんか? もしそうなら、配列を次のようなものに置き換えることができると思います:
しかし、それははるかにエレガントではないようです。ここで定数配列を使用できない理由を誰か知っていますか?
編集:「整数定数式には、リテラル (2.13)、列挙子、const 変数、または定数式で初期化された整数型または列挙型の静的データ メンバーのみを含めることができる (8.5)」と主張する C++ 標準のビットを見てきました。 ...」。定数配列が「定数式で初期化された列挙型」としてカウントされない理由はまだわかりません。私の質問に対する答えが「その通りだから」というだけかもしれませんが、私はそれを回避する必要があります。しかし、そうであれば、コンパイラはコンパイル時にこれらの値を実際に決定できるため、ちょっとがっかりです。
java - Java アイコン定数 - 静的定数は問題ありませんか?
アプリケーション全体で使用されるアイコンがいくつかあります。例として、OK/キャンセル アイコンを見てみましょう。現時点では、それらはティックとクロス (tick.png、cross.png) である可能性がありますが、将来的にはそれらを置き換えたいと思うかもしれません。また、リソース パスを 1 か所にまとめたいと考えています。
これでよろしいですか:
または、これを別の方法で行う必要がありますか?イメージ ファイルは .jar にあるため、実行時にイメージ ファイルの存在に依存してもかまいません。
解決
初期化には Bent のアイデアを使用し、定数を final にしました。
java - Javaで同等のc++定数ポインタを取得するには?
不変型オブジェクト (String、Integer、..) を final としてメソッドに渡すと、C++ 定数ポインターの文字を実現できます。しかし、変更可能なオブジェクトでそのような動作を強制するにはどうすればよいでしょうか?
私が望むのは、someType を変更せずに someMethod が someObject の状態を変更できないようにすることだけです。これは可能ですか?
c++ - テンプレート化されたクラスへのポインターであるメンバーを割り当てることはできません
私の問題は、「ウィジェット」クラスに次の宣言があることです。
メンバー関数では、通常の方法でポインターをアドレスで初期化します。
わかりました、この最後の行はコンパイラを次の場所で停止させます:
エラー C2166: 左辺値が const オブジェクトを指定しています
わかりました、MouseEvent は、単純化するために typedef として宣言されます。
Event__2 は、ご想像のとおり (基本構造を示しています):
Event__2 クラスが const 修飾子を取得する場所がわかりません。任意のヒント ?
ありがとう。
ruby - Rubyの定数またはクラス変数?
Ruby でプログラミングを始めて数か月が経ちましたが、いつクラス変数よりも定数を使用したり、その逆を行うのが適切なのか疑問に思っています。(私はRailsで作業しており、モデルの定数について考えています)。
また
ある状況が別の状況よりも好ましい状況はありますか? それとも好みやスタイルの問題ですか?