如何在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中如何正确地做到这一点?有没有什么惯用的方法来简化这样的结构?也许有一些内置函数或模式?感谢提供代码示例。
<<>>