BLACKSITE
:
216.73.217.23
:
82.25.127.225 / nivaandassociates.com
:
Linux in-mum-web845.main-hosting.eu 4.18.0-553.40.1.lve.el8.x86_64 #1 SMP Wed Feb 12 18:54:57 UTC 2025 x86_64
:
/
opt
/
golang
/
1.22.0
/
test
/
Upload File:
files >> //opt/golang/1.22.0/test/mapclear.go
// run // Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Ensure that range loops over maps with delete statements // have the requisite side-effects. package main import ( "fmt" "os" ) func checkcleared() { m := make(map[byte]int) m[1] = 1 m[2] = 2 for k := range m { delete(m, k) } l := len(m) if want := 0; l != want { fmt.Printf("len after map clear = %d want %d\n", l, want) os.Exit(1) } m[0] = 0 // To have non empty map and avoid internal map code fast paths. n := 0 for range m { n++ } if want := 1; n != want { fmt.Printf("number of keys found = %d want %d\n", n, want) os.Exit(1) } } func checkloopvars() { k := 0 m := make(map[int]int) m[42] = 0 for k = range m { delete(m, k) } if want := 42; k != want { fmt.Printf("var after range with side-effect = %d want %d\n", k, want) os.Exit(1) } } func checksideeffects() { var x int f := func() int { x++ return 0 } m := make(map[int]int) m[0] = 0 m[1] = 1 for k := range m { delete(m, k+f()) } if want := 2; x != want { fmt.Printf("var after range with side-effect = %d want %d\n", x, want) os.Exit(1) } var n int m = make(map[int]int) m[0] = 0 m[1] = 1 for k := range m { delete(m, k) n++ } if want := 2; n != want { fmt.Printf("counter for range with side-effect = %d want %d\n", n, want) os.Exit(1) } } func main() { checkcleared() checkloopvars() checksideeffects() }