第一种格式似乎比第二种更受欢迎。那是为什么?
第一个(每行上的星号)
/*
* line 1
* line 2
* line 3
*/
第二个(最小星号)
/*
line 1
line 2
line 3
*/
答案 0 :(得分:10)
可能是因为它更具可读性,如果评论有很多行,即使你没有看到结尾,你也知道你正在阅读评论。
答案 1 :(得分:4)
主要原因是因为PHP文档管理员。
构建PHPDoc等文档管理器来解析该表单中的注释块,可解析注释块的示例如下:
/**
* Page-Level DocBlock
* @package MyPackage
* @category mycategory
*/
正如您所看到的那样,星号位于每一行,而某些行包含@
符号,这就是您所谓的标记标记符,它告诉解析器应该处理此行并将该文件放在该类别下文件的价值。
另外看一下Zend Coding Standards - Inline Documentation这也说明你应该对这种解析器和可读性使用这种类型的评论。
答案 2 :(得分:2)
更容易看到评论的开始和结束位置。
只需扫描左栏,直到星号“用尽”,找到下一段代码。
第一种方法失败的地方是重写评论的时候。现在它需要重新格式化线条以使星号排成一行。除非你有自动为你做这件事的工具,否则这是禁忌。
在McConnell的“Code Complete”(第二版),第790页,他说:
对于更长的注释,创建长双列斜线,手动分隔行之间的文本行以及类似活动的任务不是很有意义,因此/ * ... * /语法更适合多行注释
关键是你应该注意你如何度过你的时间。如果你花了很多时间输入和删除[text]以使[星号]排成一行,你就不会编程;你在浪费时间。找到更有效的风格。
答案 3 :(得分:1)
我个人使用//
表示每个评论,并保留/* */
用于临时用法,例如在重构时注释掉许多函数。使用/* */
进行块注释会阻止我快速评论大量代码。
所以我的块评论看起来像这样:
//*****************************
// Some
// Comments
// Here
//*****************************
答案 4 :(得分:0)
它(可以说)更具可读性或更好看。人们已经使用了ASCII艺术很长一段时间了,例如。
/*********************
* here is the doc *
*********************/
或其他什么。
答案 5 :(得分:0)
我喜欢它,因为它在视觉上区分了块注释掉的代码和文档。
如果我要评论一堆代码,请:
/*
int i;
someCode(i);
print i;
*/
更好,因为我可以移动开始/结束部分以启用它的一部分,或者只删除两行来启用它。使用其他格式我不能这样做。因此,文档具有其他样式更好,因为您从不尝试“取消注释”文档。
现在,使用丰富的编辑器,我更喜欢使用行注释来注释掉代码,但这是另一个论点。
注释掉代码的在线评论
我更喜欢这个注释掉的代码:
// int i;
// someCode(i);
// print i;
这有很多原因。首先,只需一行就可以轻松取消注释(启用)。其次,它提供了一个更好的视觉指示,它被注释掉然后你得到一个块注释(它依赖于语法突出显示,正如其他人提到的那样)。
但第三,也是最重要的,它允许您安全地在您评论的内容中包含块评论。
当我注释掉这个时,观察SO语法突出显示的区别:
/**
* Does something to i and then prints i
*/
public void messWithI() {
int i;
someCode(i);
print i;
}
使用块注释:
/*/**
* Does something to i and then prints i
*/
public void messWithI() {
int i;
someCode(i);
print i;
}*/
使用行注释:
// /**
// * Does something to i and then prints i
// */
// public void messWithI() {
// int i;
// someCode(i);
// print i;
// }
你需要一个丰富的编辑器的原因是,如果你以这种方式手动应用/删除注释,那将是大量的击键。 IDE具有为您执行此操作的实用程序(Eclipse CTRL - / ),高级文本编辑器具有宏或至少垂直选择。