相关疑难解决方法(0)

一般来说,为什么不允许使用嵌套块注释?

在我使用的大多数语言中,你根本无法嵌套块注释,因为"关闭"注释sintaxis的第一个发生关闭了注释,即使它只是一个"内部"注释.

例如,在HTML中

<!-- outer comment
<p>hello</p><!-- inner comment <p>world</p> -->
<p>this should BE commented</p>
-->
Run Code Online (Sandbox Code Playgroud)

在这种情况下,外部注释结束于第一个-->而不是相应的最后一个,导致最后一个<p>打印,而不应该打印.

对于/* */用于块注释的语言也是如此,例如java,php,css,javascript等.

但我的问题是为什么会这样?为什么在设计上不允许这样做?我提到"按设计",因为我真的怀疑是因为解析问题,我猜解析器完全有能力跟踪开放/*s并用相应的结束关闭*/评论但是他们只是某种程度上决定它不是一个好主意.

我已经知道,解决方法是以某种方式更改内部结束注释,以避免它们关闭,并且只留下最后一个结束注释.例如,改变-->s和*/s的内部- ->* /s.但这显然不方便,当您只想丢弃代码块以进行调试时很难做到.(其他技术是将所有内容嵌套在if(false){}块中,但这不是重点.

那么,我想知道的是为什么几种现代语言通常不允许嵌套注释?必须有一个很好的理由,除了"别人不做,我们也不会"对吧?

另外,是否还有其他(不那么模糊)的语言允许嵌套块注释?

html php java comments nested

14
推荐指数
1
解决办法
2877
查看次数

标签 统计

comments ×1

html ×1

java ×1

nested ×1

php ×1