在 C/C++(以及该系列的许多语言)中,根据条件声明和初始化变量的常见习惯使用三元条件运算符:
int index = val > 0 ? val : -val
Go 没有条件运算符。实现与上面相同的一段代码的最惯用的方法是什么?我来到以下解决方案,但它似乎很冗长
var index int
if val > 0 {
index = val
} else {
index = -val
}
有更好的东西吗?
原文由 Fabien 发布,翻译遵循 CC BY-SA 4.0 许可协议
正如所指出的(希望不出所料),使用
if+else
确实是在 Go 中执行条件的 惯用方法。除了完整的
var+if+else
代码块之外,这种拼写也经常使用:如果您有足够重复的代码块,例如
int value = a <= b ? a : b
的等价物,您可以创建一个函数来保存它:编译器会内联这些简单的函数,所以它更快、更清晰、更短。