Conditions de test avec les expressions if/else
Le flux de contrôle le plus basique dans n’importe quel langage de programmation est l’instruction if/else
. Dans Go, les instructions if/else
sont simples. Mais vous devez comprendre quelques différences avant de commencer à écrire des programmes Go.
Jetons un coup d’œil à la syntaxe Go pour les instructions if
.
Syntaxe pour les instructions If
Contrairement à d’autres langages de programmation, dans Go, vous n’avez pas besoin de parenthèses dans les conditions. La clause else
est facultative. Toutefois, les accolades sont toujours obligatoires. En outre, Go n’offre pas de prise en charge des instructions if
ternaires pour réduire les lignes, vous devez donc écrire l’instruction if
complète à chaque fois.
Voici un exemple de base d’une instruction if
:
package main
import "fmt"
func main() {
x := 27
if x%2 == 0 {
fmt.Println(x, "is even")
}
}
Dans Visual Studio Code, si votre syntaxe Go contient des parenthèses dans les conditions, les parenthèses sont automatiquement supprimées lorsque vous enregistrez votre programme.
Instructions if composées
Go prend en charge les instructions if
composées. Vous pouvez imbriquer des instructions à l’aide de l’instruction else if
. Voici un exemple :
package main
import "fmt"
func givemeanumber() int {
return -1
}
func main() {
if num := givemeanumber(); num < 0 {
fmt.Println(num, "is negative")
} else if num < 10 {
fmt.Println(num, "has only one digit")
} else {
fmt.Println(num, "has multiple digits")
}
}
Dans ce code, notez que la variable num
stocke la valeur retournée par la fonction givemeanumber()
et la variable est disponible dans toutes les if
branches. Toutefois, si vous essayez d’imprimer la valeur de la variable num
en dehors du bloc if
, vous obtenez une erreur :
package main
import "fmt"
func somenumber() int {
return -7
}
func main() {
if num := somenumber(); num < 0 {
fmt.Println(num, "is negative")
} else if num < 10 {
fmt.Println(num, "has 1 digit")
} else {
fmt.Println(num, "has multiple digits")
}
fmt.Println(num)
}
Lorsque vous exécutez le programme, la sortie d’erreur se présente comme suit :
# command-line-arguments
./main.go:17:14: undefined: num
Dans Go, la déclaration de variables dans if
blocs est idiomatique. Il s’agit d’un moyen de programmer efficacement à l’aide d’une convention qui est courante dans Go.