2
  • コメントやコードのスラブを切り替えて、コンテンツをすばやく表示または非表示にしますか?
  • あなたが使用するいくつかの一般的な方法は何ですか?
  • 受け入れられた基準はありますか?
  • いくつかの方法は避けるべきですか?つまり、一部のエンジンによって誤解される可能性はありますか?
  • これに対する代替またはより良い解決策はありますか?

標準- CSS、JavaScript、PHP、ActionScript など、ほとんどの言語をカバーするために使用するものです。

/**/ visible /**/
/**\/ hidden /**/

HTML

<!----> visible <!---->
<!----/> hidden <!---->

PHP - $hide のようなものを定義するとうまくいきます。他の変数は production または dev である可能性があります。大きなスラブを非表示にして、1 つの単純な変数の変更と一緒に表示できます。

if(0){ hidden }
if(1){ visible }
if(!$HIDE){ content } // $HIDE defined elsewhere, visible if undefined
4

4 に答える 4

2

何をレンダリングするかをプログラムで制御できれば、それが最善だと思います (PHP で行ったように)。あなたが書いたもの (本質的にはローカル プリプロセッサ マクロ) よりも優れた解決策は、レンダリング コードをドキュメントのサブ部分を生成する関数に実際に分割することです。必要がない場合は呼び出さず、コードに明確な条件があります。これは、たとえば、MediaWiki の記述方法です。そうしないと、複雑なプロジェクトでは混乱してしまいます。

コードでコメントアウトをハードコーディングすることには、多くのリスクがあります。その中で:

  • コメント解除を台無しにするのは非常に簡単です

  • 何をコメントしたか不明。

  • コメントアウトされたセクションが重なっている場合の問題

  • 切り取りと貼り付けのエラー

  • 非表示にしたいものはすべてアクセス可能で、検索エンジンなどに影響します.

于 2009-05-06T02:08:24.303 に答える
2
/*
Commented
// */

//*
Not commented
// */
于 2009-05-06T02:27:23.117 に答える
1

一部の人々から、C ++のセクションをコメントアウトする適切な方法は、プリプロセッサを使用しなくなったため、ifステートメントを使用することであると言われています。

if(false)
{
    chunk of code;
}

コンパイラは最終製品からデッドコードを最適化するという理論であり、それらはネストできますが、/* */スタイルコメントでは実行できません。

もちろん、その理論は偽物です。たとえば、コードの任意の領域をコメント化するために使用することはできないからです。

class Foo
{
    void Bar();
    if(false)
    {
        int Baz(double); // WRONG!!!
    }
};

一方、これは、任意のブロックで任意のステートメントを許可し、標準のプリプロセッサまたはブロックコメントも持たないPythonなどの言語で完全に機能します。

于 2009-05-06T03:40:51.943 に答える
0

私は、編集しているソーステキストの構造を理解し(VimEmacsが非常に人気があります)、エディターによって解析された構造に基づいてコード折り畳みを実行できるテキストエディターを使用することを好みます。

VimフォールディングまたはEmacsフォールディングのいずれかが私にとってこのニーズを満たします。

于 2009-05-06T03:29:10.147 に答える