【问题标题】:Why the distinction between single-line and multi-line comments? [closed]为什么要区分单行注释和多行注释? [关闭]
【发布时间】:2013-10-05 12:28:51
【问题描述】:

在 python、ruby、javascript 等语言中,单行和多行 cmets 有不同的语法。我没有看到这种复杂性的好处。为什么,从语言设计的角度来看,两者之间有区别?以javascript为例,实现如下:

// I'm a single-line comment!

/* 
I'm a 
multi-line
comment
*/

为什么不简单(类似):

/* Just a comment */

/* 
Doesn't matter 
how many 
lines 
/*

【问题讨论】:

  • Python 对单行和多行 cmets 没有单独的语法。但是,它确实有多行字符串,这些字符串通常用于文档并且实际上具有一些功能。

标签: javascript python ruby comments


【解决方案1】:

一个可能的答案是添加单行 cmets 更快。 例如,在 JS 中需要 2 个特殊字符来添加单行注释,需要 4 个特殊字符来添加多行注释。

【讨论】:

    【解决方案2】:
    • 人们需要一次注释掉代码块
    • 人们还需要注释掉单行

    如果只需进行一项更改,注释掉一行会更快。

    种语言只支持带有开始和结束分隔符的 cmets - C89 就是一个显着的例子(有没有想过 C99 添加 // 是有原因的?)。但是,如果您忘记取出一个(或另一个),使用相同的起始字符和结束字符会造成一团糟。它后面的每条评论都会被翻转,编译器(如果它有点帮助的话)如何知道语法错误在哪里?

    【讨论】:

    • C 可能获得了// 评论支持,因为无论如何每个人都支持它,这可能更像是一个“标准实践的规范化”问题,而不是“我们必须拥有这个奇妙的功能”问题。跨度>
    • @muistooshort:我主要基于这个观点! ;)
    • @muistooshort 这只是将反问问题改为“为什么每个人都支持// cmets?” ;-)
    • 这就是为什么它被正当关闭以及为什么没有人应该费心回答它的原因。在这里待得够久的人都应该知道,像这样的问题会被拒绝,所以为什么要浪费你的时间来回答呢?
    • @delnan:因为每个人的 C 和 C++ 编译器都混在一起了。这让一长串毫无意义的意见和猜测又多了一个毫无意义的步骤:)
    猜你喜欢
    • 1970-01-01
    • 2015-10-22
    • 2021-06-25
    • 2015-11-18
    • 1970-01-01
    • 1970-01-01
    • 2014-01-15
    • 2014-02-09
    • 2010-12-03
    相关资源
    最近更新 更多