2
  • 您是否切换注释或代码块以快速显示或隐藏内容?
  • 您使用的一些常用方法是什么?
  • 有公认的标准吗?
  • 应该避免一些方法吗?即它们会被某些引擎误解吗?
  • 有没有替代或更好的解决方案?

标准- 这是我用来涵盖大多数语言的:CSS、JavaScript、PHP、ActionScript

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

HTML

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

PHP - 定义类似 $hide 的东西效果很好,其他变量可以是生产或开发 - 然后可以隐藏大板并与一个简单的变量更改一起显示。

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

if有些人告诉我,注释掉 C++ 部分的正确方法是使用语句,因为我们显然不再使用预处理器了。

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 回答