Avatar ·

¿Cómo reemplazar el operador ternario de C/C++ en Go? Formas idiomáticas

¡Hola a todos! Acabo de empezar a aprender Go después de varios años trabajando con C++ y me encontré con un problema. En C++ solía usar el operador ternario para asignaciones condicionales cortas, por ejemplo: ```cpp int min = (a < b) ? a : b; ``` Pero en Go no existe tal operador. Entiendo que se puede usar un if/else normal: ```go var min int if a < b { min = a } else { min = b } ``` Pero esto ocupa 4-5 líneas en lugar de una. Para cosas simples como elegir un valor o formatear una cadena, parece demasiado verboso. Por ejemplo, quiero hacer algo como: ```go fmt.Println("Result: " + (score > 50 ? "Pass" : "Fail")) ``` O asignar un valor dependiendo de una condición dentro de un return: ```go return (isValid ? data : defaultValue) ``` ¿Cómo se hace esto correctamente en Go? ¿Existe alguna forma idiomática de acortar estas construcciones? ¿Quizás hay funciones integradas o patrones? Agradecería ejemplos de código. <<>>

Respuesta corta: en