Structures de contrôle
if / else
La syntaxe de `if` ressemble à celle de C ou Java, à un détail près : les parenthèses autour de la condition sont interdites (pas juste optionnelles), et les accolades sont obligatoires même pour une seule instruction.
age := 20 if age >= 18 { fmt.Println("Majeur")} else if age >= 13 { fmt.Println("Adolescent")} else { fmt.Println("Enfant")}Particularité utile : `if` accepte une instruction d'initialisation avant la condition, séparée par un point-virgule. La variable ainsi déclarée n'existe que dans la portée du `if`/`else`, ce qui évite de polluer le reste de la fonction.
if age := computeAge(birthDate); age >= 18 { fmt.Println("Majeur")}// `age` n'existe plus ici, en dehors du bloc ifCe motif `if valeur, err := faireQuelqueChose(); err != nil { ... }` revient constamment en Go, car c'est ainsi que le langage gère les erreurs (tu le retrouveras dans le module dédié à la gestion des erreurs).
À toi de jouer
Écris une fonction `describeTemperature(celsius float64) string` qui renvoie "gel" si <= 0, "frais" si <= 15, "agréable" si <= 25, sinon "chaud".
func describeTemperature(celsius float64) string { // à compléter}