問題タブ [magic-numbers]

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.

0 投票する
3 に答える
1061 参照

c# - 変数とマジック ナンバーの使用によるパフォーマンスへの影響

これにはよく戸惑います。変数や定数を使ってよく使う数値に名前を付けるように教えられてきましたが、プログラムの効率が低下する場合は、それでもそうすべきでしょうか? 例を次に示します。

上記のコードは名前付き変数を使用していますが、このコードよりも遅く実行されます。

この例では、実行時間の差はごくわずかですが、より大きなコード ブロックではどうでしょうか?

0 投票する
4 に答える
2533 参照

java - 0.0 と 1.0 はマジック ナンバーと見なされますか?

-101、および2がマジック ナンバー規則の例外であることはわかっています。しかし、フロートの場合も同じかどうか疑問に思っていました。それらの最終変数を初期化する必要がありますか、それともプログラムで直接使用できますか?

クラスでパーセンテージとして使用しています。入力が 0.0 未満または 1.0 より大きい場合、パーセンテージを自動的にゼロに設定します。したがって、(0.0 <= 入力 && 入力 <= 1.0) の場合。

ありがとうございました

0 投票する
3 に答える
323 参照

c++ - パラメータまたはメソッドのオーバーロードのマジックナンバー?

C++ でクラスのインターフェイスを実装する必要があります。ここでは、2 種類のセットに関連して発生したイベントを要求する必要があります。ここでは、人物とアクションとしましょう。可能なすべての組み合わせで個人識別子とアクション識別子を要求する必要があります (それらすべて、識別子の 1 つだけを指定するか、両方を指定します)
オプション 1)

このオプションは読みやすいですが、可能な組み合わせごとに異なるインターフェイスを実装する必要があるため、新しい識別子を含めると 8 つのメソッドが存在することになります (2³)。

オプション 2)

このオプションのメソッド インターフェイスは 1 つだけですが、「すべての可能な ID」を検索するパブリック マジック ナンバーを導入します。

使いやすさとさらなる保守性については、これら 2 つの選択肢の中でどちらが最適かを考えています (もちろん、ここに含めていない他のより良いオプションもある可能性があります)。

ありがとう。

0 投票する
1 に答える
427 参照

java - サイズからマジックナンバーを取り除く

GUIに取り組んでいます。setSize 値のマジック ナンバーを取得しています。マジック ナンバーは悪い習慣なので、マジック ナンバーのサイズを取り除くにはどうすればよいですか? それぞれに変数を割り当てる必要がありますか?

setSize(x,y) のようになります。これを克服する最善の方法は何ですか?これを行う必要がありますか、それとも別のより良い方法がありますか? 多くのサイズがある場合、すべてのサイズを割り当てることができないため、これは役に立ちません。

0 投票する
2 に答える
343 参照

java - マジックナンバーの背景を取り除く方法

JPanel バックグラウンドのマジック ナンバーを取得しています。これは悪い習慣であるため、これを取り除く方法はありますか:

カスタムカラーを使用するにはどうすればよいですか?

0 投票する
1 に答える
197 参照

java - Javaでの正規表現の実装でマジックナンバーを使用するのはなぜですか?

Matcher クラスのコンストラクターのソース コード:

グループの長さとして単にparent.capturingGroupCount*2を使用しないのはなぜですか?

0 投票する
1 に答える
255 参照

java - 列を生成するために Java printf 形式指定子でマジック ナンバーを失う

C では、このprintf関数には優れたワイルドカード機能があり、最小列幅を指定する int を通常配置する場所にアスタリスクを使用できます。だからあなたは行くことができます

プリプロセッサ ディレクティブに追加してから、後で配置できます

myString を 20 文字の列に出力します。

このアスタリスクのトリックは、Java では実装されていないようです。私が行かなければならない

代わりは。これは目に余るマジック ナンバーです。特に、printf を使用して、多数の行の列幅を一度に変更する簡単な方法が必要なテーブルを作成するような場合はなおさらです。そう、

  • 私がやりたいことを可能にするJavaのprintfについて欠けているものはありますか、または

  • マジック ナンバーを使用せずにテーブルの出力用にテキストを書式設定する、きちんとした Java のような方法はありますか?

0 投票する
1 に答える
486 参照

c++ - 反射グレイ コードのマジック ナンバーを 2 進数に変換

バイナリ反射グレーコードを標準バイナリに変換する汎用関数を作成しました。このページで見つけたアルゴリズムを使用しました。前述のアルゴリズムは次のとおりです。

次に、どの標準unsignedタイプでも機能するようにコードを修正しました。ここに私が書いたものがあります:

unsignedアルゴリズムは、すべての標準タイプでうまく機能するようです。ただ、書くときsizeof(Uint)*4は型の大きさによって終了条件が変わるのは理にかなっていたので直感的に使っていたのですが、sizeof(Uint)*4実は何を表しているのかわからないのが実情です。今のところ、私が直感的に書いたマジックナンバーですが、*4他の係数では機能せず、なぜ機能するのか説明できません。

このマジックナンバーが実際に何に対応しているか知っている人はいますか?