例如,简单检查一个空字符串:
if s == "" { return 0 }
或者,一个for循环用-1预填充数组(我认为没有更简单的方法可以做到这一点):
for i := range m { m[i] = -1 }
即使这些功能非常简单,还是通常不鼓励这样做?我并不是要学究,但通常会对此感到好奇。
答案 0 :(得分:10)
通常,Go的文化是按照命令go fmt
格式化代码的方式格式化代码。 (链接的文章中存在接受样式的原因。)
在某种程度上,go fmt
将结构化语句主体放在单独的行上意味着,是的,这种做法在社区中是“不明智的”,但这只是因为希望对尽可能多的Go源代码具有共同的外观尽可能。
为什么单行代码不属于go fmt
的原因并不像选择go fmt
作为规范样式的事实那样重要。如果您想就单线的优缺点进行辩论,则可以查看几乎任何一种花括号语言进行的辩论,因为它们并不是Go语言所独有的。当然,Go强制使用大括号确实使问题与例如C或Java稍有不同,在C或Java中,无括号的主体意味着“在主体中添加新语句”更加困难,但是基本上,许多与可读性相同的论点确实适用。