for-loop - 是否不鼓励在 Go 中使用单行 for 循环或 if 语句?

标签 for-loop if-statement go

例如,一个简单的空字符串检查:

if s == "" { return 0 }

或者,一个用 -1 预填充数组的 for 循环(我认为没有更简单的方法可以做到这一点):

for i := range m { m[i] = -1 }

这通常是不鼓励的,即使这些功能非常简单吗?我并不是要学究气,但我通常很好奇对此的看法是什么。

最佳答案

通常,Go 中的文化是按照命令 go fmt 的方式格式化代码。会格式化它。 (链接文章中有可接受样式的原因。)

在一定程度上,go fmt 将结构化语句主体放在单独的行中意味着是的,这种做法在社区中是“不鼓励的”,但这只是因为希望有一个共同的外观尽可能多的 Go 源代码。

为什么单行代码不是 go fmt 的一部分的原因与 go fmt 被选为规范的风格。如果你想争论单行代码的优缺点,你可以看看几乎所有大括号语言中的争论,因为它们并不是 Go 独有的。当然,Go 强制使用大括号确实使这个问题与 C 或 Java 等问题略有不同,在 C 或 Java 中,没有大括号的主体意味着更难“在主体中添加新语句”,但基本上许多相同的可读性论点确实适用。

关于for-loop - 是否不鼓励在 Go 中使用单行 for 循环或 if 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52381395/

相关文章:

python - 如何在 python 中使用 enumerate() 枚举字典中的项目

C# - 将 2 个列表与自定义元素进行比较

对象的Java空检查

go - 如何使用 goquery 检索子元素的完整 HTML?

java - 关于for循环的困惑

java - 停止循环直到方法调用 onFinished()

java - 使用for循环和if的数组问题(JAVA)

java - 在 if 语句中注册按钮单击

go - 自定义 Gorm 预加载不获取数据

function - 在 Go 中将函数作为参数传递