为什么Go程序员将函数的名称作为函数注释的第一个单词?这是一个技术问题,请不要是宗教问题。
作为一个例子
// addOptions adds options s to opt
func addOptions(s string, opt interface{}) (string, error) {
....
这不违反SPOT(单点真相)原则吗?
我在问,因为我确信这是有充分理由的。
这就是“GO程序设计语言”中的完成方式。 (Alan A. A. Donovan和Brian W. Kernighan)。它也是在“C编程语言”中完成的。 (Dennis M. Ritchie和Brian W. Kernighan)早在1988年。如果它持续了这么长时间似乎必须有一个很好的理由吗?
SPOT原则归功于Eric S. Raymond在“UNIX编程艺术”中的Kernighan。
答案 0 :(得分:4)
TL; DR使得grepping更容易。
引自@twotwotwo引用的https://golang.org/doc/effective_go.html#commentary:
Doc评论最适合作为完整的句子,允许广泛的 各种自动演示文稿。第一句应该是a 以声明名称开头的一句话摘要。
...
如果名称始终开始评论,则godoc的输出可以 有用的是通过grep运行。想象一下,你无法记住这个名字 "编译"但正在寻找常规的解析功能 表达式,所以你运行命令,
$ godoc regexp | grep parse
如果包中的所有文档注释 开始了,#34;这个功能......",grep不会帮助你记住这个名字。 但是因为软件包以名称开始每个文档评论,你就是这样 看到这样的东西,它回忆起你正在寻找的词。
$ godoc regexp | grep parse
Compile parses a regular expression and returns, if successful, a Regexp
parsed. It simplifies safe initialization of global variables holding
cannot be parsed. It simplifies safe initialization of global variables $