Avatar ·

Comment remplacer l'opérateur ternaire de C/C++ en Go ? Méthodes idiomatiques

Bonjour à tous ! Je viens de commencer à apprendre Go après plusieurs années de travail en C++ et j'ai rencontré un problème. En C++, j'utilisais souvent l'opérateur ternaire pour des affectations conditionnelles courtes, par exemple : ```cpp int min = (a < b) ? a : b; ``` Mais en Go, un tel opérateur n'existe pas. Je comprends qu'on peut utiliser un if/else classique : ```go var min int if a < b { min = a } else { min = b } ``` Mais cela prend 4-5 lignes au lieu d'une. Pour des choses simples comme choisir une valeur ou formater une chaîne, cela semble trop lourd. Par exemple, je veux faire quelque chose comme : ```go fmt.Println("Result: " + (score > 50 ? "Pass" : "Fail")) ``` Ou assigner une valeur en fonction d'une condition dans un return : ```go return (isValid ? data : defaultValue) ``` Comment faire cela correctement en Go ? Existe-t-il une manière idiomatique de raccourcir ces constructions ? Y a-t-il des fonctions intégrées ou des patterns ? Je serais reconnaissant pour des exemples de code. <<>>

Réponse courte : en