Avatar ·

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. <<>>

Resposta curta: em