La portée variable et l'observation dans Go sont des techniques puissantes qui permettent de contrôler la visibilité variable et l'intégrité des données. Voici différents scénarios dans lesquels ces techniques trouvent des applications utiles :
package main import "fmt" func main() { i := 10 // scope: main j := 4 // Shadowing i within this block for i := 'a'; i < 'b'; i++ { // Access shadowed i and j fmt.Println(i, j) // 97 4 } // Original i comes into scope fmt.Println(i, j) // 10 4 // Shadowing i again within the if block if i := "test"; len(i) == j { // Shadowed i with string "test" fmt.Println(i, j) // test 4 } else { // Shadowed i again with string "test40" fmt.Println(i, j) // test 40 } // Original i comes into scope fmt.Println(i, j) // 10 4 }
package main import "fmt" func main() { i := 1 j := 2 // Create new scope with { } block { // Shadow i with a new local variable i := "hi" // Increment j j++ fmt.Println(i, j) // hi 3 } // Original i comes into scope fmt.Println(i, j) // 1 3 }
package main import "fmt" func fun(i int, j *int) { i++ // Implicitly shadowing (used as local) *j++ // Explicitly shadowing (used as global) fmt.Println(i, *j) // 11 21 } func main() { i := 10 // scope: main j := 20 fun(i, &j) fmt.Println(i, j) // 10 21 }
package main import "fmt" var i int = 1 // Global variable func main() { j := 2 fmt.Println(i, j) // 1 2 // Shadowing global i i := 10 fmt.Println(i, j) // 10 2 fun(i, j) // 10 2 } func fun(i, j int) { fmt.Println(i, j) // 10 2 }
Les techniques de portée variable et d'observation dans Go offrent flexibilité, protection des données et opportunités de organisation efficace du code. En comprenant leurs applications, les développeurs peuvent optimiser leur base de code Go et gérer efficacement la visibilité et la manipulation des variables.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!