"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment puis-je accéder aux variables déclarées dans une instruction Go « if » en dehors de celle-ci ?

Comment puis-je accéder aux variables déclarées dans une instruction Go « if » en dehors de celle-ci ?

Publié le 2025-01-18
Parcourir:294

How Can I Access Variables Declared Inside a Go `if` Statement Outside of It?

Portée des variables dans les instructions conditionnelles

Dans Go, les variables déclarées dans la portée d'une instruction if ne sont visibles que dans ce bloc. Cela peut présenter un défi lorsqu'il est nécessaire d'utiliser des variables déclarées dans l'instruction conditionnelle en dehors de celle-ci.

Considérez le code suivant :

if len(array1) > len(array2) {
    new1 := make([]string, 0, len(array1))
}

// Error: new1 is not visible here
new2 := make([]string, 0, len(new1))

Dans cet exemple, la variable new1 est déclarée dans l'instruction if et ne peut être utilisée que dans cette portée. Pour résoudre ce problème, new1 doit être déclaré en dehors de l'instruction if et initialisé à l'intérieur de celle-ci.

var new1 []string

if len(array1) > len(array2) {
    new1 = make([]string, 0, len(array1))
} else {
    new1 = make([]string, 0, len(array2))
}

new2 := make([]string, 0, len(new1))

Maintenant, new1 est déclaré en dehors de l'instruction if et est accessible à la fois dans les blocs if et else. Cela lui permet d'être utilisé dans le code suivant où il est passé comme argument à make.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3