C 的三元运算符在 Go 语言中的等价物是什么?

2023-11-22

在 C/C++(以及该系列的许多语言)中,根据条件声明和初始化变量的常见习惯用法是使用三元条件运算符:

int index = val > 0 ? val : -val

Go 没有条件运算符。实现与上面相同的代码的最惯用的方法是什么?我找到了以下解决方案,但它似乎很冗长

var index int

if val > 0 {
    index = val
} else {
    index = -val
}

还有更好的吗?


正如所指出的(希望这并不奇怪),使用if+else确实是惯用方式在 Go 中执行条件语句。

除了全面爆发var+if+else不过,代码块也经常使用这种拼写:

index := val
if val <= 0 {
    index = -val
}

如果您有一段足够重复的代码,例如相当于int value = a <= b ? a : b,您可以创建一个函数来保存它:

func min(a, b int) int {
    if a <= b {
        return a
    }
    return b
}

...

value := min(a, b)

编译器将内联这样简单的函数,因此它更快、更清晰、更短。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C 的三元运算符在 Go 语言中的等价物是什么? 的相关文章

随机推荐