Avatar ·

如何在Go中替换C/C++的三元运算符?惯用方法

大家好!我在使用C++几年后刚开始学习Go,遇到了一个问题。在C++中,我经常使用三元运算符进行简短的条件赋值,例如: ```cpp int min = (a < b) ? a : b; ``` 但在Go中没有这样的运算符。我知道可以使用普通的if/else: ```go var min int if a < b { min = a } else { min = b } ``` 但这需要4-5行代码而不是一行。对于像选择值或格式化字符串这样简单的事情,这显得过于冗长。例如,我想做类似的事情: ```go fmt.Println("Result: " + (score > 50 ? "Pass" : "Fail")) ``` 或者在return中根据条件赋值: ```go return (isValid ? data : defaultValue) ``` 在Go中如何正确地做到这一点?有没有什么惯用的方法来简化这样的结构?也许有一些内置函数或模式?感谢提供代码示例。 <<>>

简短回答:在