Como substituir o operador ternário de C/C++ em Go? Maneiras idiomáticas
Olá a todos! Comecei a estudar Go depois de alguns anos trabalhando com C++ e me deparei com um problema. Em C++, eu costumava usar o operador ternário para atribuições condicionais curtas, por exemplo:
```cpp
int min = (a < b) ? a : b;
```
Mas em Go não existe esse operador. Entendo que posso usar um if/else comum:
```go
var min int
if a < b {
min = a
} else {
min = b
}
```
Mas isso ocupa 4-5 linhas em vez de uma. Para coisas simples como escolher um valor ou formatar uma string, parece muito verboso. Por exemplo, quero fazer algo como:
```go
fmt.Println("Result: " + (score > 50 ? "Pass" : "Fail"))
```
Ou atribuir um valor dependendo de uma condição dentro de um return:
```go
return (isValid ? data : defaultValue)
```
Como fazer isso corretamente em Go? Existe alguma maneira idiomática de encurtar essas construções? Talvez existam funções embutidas ou patterns? Agradeço por exemplos de código.
<<>>