为什么要区分单行注释和多行注释?

3
在像Python、Ruby、JavaScript这样的语言中,单行注释和多行注释有不同的语法。我不认为这种复杂性有什么好处。从语言设计的角度来看,为什么要区分这两者?以JavaScript为例,以下是其实现方式:
// I'm a single-line comment!

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

为什么不简单地使用类似以下的方法:
/* Just a comment */

/* 
Doesn't matter 
how many 
lines 
/*

Python没有单独的语法来区分单行注释和多行注释。然而,它有多行字符串,通常用于文档编写,并且实际上具有一些功能。 - Ry-
2个回答

4
  • 人们需要一次性注释掉代码块
  • 人们还需要注释单行代码

当只有一个更改时,注释单行比较快。

确实有一些语言仅支持使用起始和结束定界符进行注释-C89是一个著名的例子(你是否想过C99添加//的原因?)。但是,如果您忘记删除其中一个(或另一个)字符,则使用相同的起始和结束字符会造成完全混乱。其后的每个注释都将被翻转,编译器(如果它是一个有用的编译器)如何知道语法错误在哪里?


C 可能获得了 // 注释支持,因为大家都在支持它,这可能更多是一个“与标准实践的规范化”问题,而不是“我们必须拥有这个美妙特性”的问题。 - mu is too short
@muistooshort: 我认为这主要是基于个人观点的!;) - Ry-
@muistooshort 这只是把修辞问句改成了“为什么每个人都支持//注释呢?”;-) - user395760
这就是为什么这个问题被正确关闭,也是为什么没有人应该费心回答它的原因。任何在这里待得足够久的人都应该知道,像这样的问题会被拒绝,所以为什么要浪费时间回答呢? - mu is too short
@delnan:因为每个人的C和C++编译器被混合在一起了。这导致了一个更加无意义的步骤,沿着一长串毫无意义的观点和猜测继续前进 :) - mu is too short
@minitech:谢谢!听起来我没有看到的是程序员们希望能够方便快捷地进行单行注释(只需要一个分隔符),而多行注释必然会更复杂(需要开启和关闭的分隔符)。 - rainbowsorbet

1

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接