Variablenbereich und -schatten in Go sind leistungsstarke Techniken, die die Kontrolle über die Sichtbarkeit und Datenintegrität von Variablen ermöglichen. Hier sind verschiedene Szenarien, in denen diese Techniken nützliche Anwendungen finden:
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 }
Variabler Umfang und Shadowing-Techniken in Go bieten Flexibilität, Datenschutz und Möglichkeiten für effizienten Code Organisation. Durch das Verständnis ihrer Anwendungen können Entwickler ihre Go-Codebasis optimieren und die Sichtbarkeit und Manipulation von Variablen effektiv bewältigen.
Das obige ist der detaillierte Inhalt vonWie verbessern Variablenumfang und Shadowing die Codekontrolle und Datenintegrität in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!