Avatar ·

Equivalente do operador ternário em Go: como escrever uma expressão condicional em uma linha?

Olá a todos! Comecei a estudar Go recentemente depois de alguns anos trabalhando com Python e JavaScript. Nessas linguagens, eu costumava usar o operador ternário para atribuições condicionais compactas, por exemplo:\n\n```python\nstatus = "active" if user.is_logged_in else "inactive"\n```\n\nEm Go, estou tentando fazer algo parecido:\n\n```go\npackage main\n\nimport "fmt"\n\nfunc main() {\n age := 20\n status := age >= 18 ? "adulto" : "criança"\n fmt.Println(status)\n}\n```\n\nMas o compilador retorna um erro. Entendo que Go não tem operador ternário, mas como então escrever elegantemente uma atribuição condicional simples sem inflar o código?\n\nTentei usar if-else, mas isso ocupa 4-5 linhas em vez de uma. Existe uma maneira idiomática de fazer isso de forma concisa? Talvez haja algum mecanismo embutido ou prática comum entre desenvolvedores Go? Agradeço desde já pela ajuda!\n\n<<>>\n

Por que Go não tem operador ternário e o que usar no lugar

\n\n

Go é uma linguagem criada com foco em