Skip to content

Instantly share code, notes, and snippets.

@tailnode
Created January 1, 2018 13:34
Show Gist options
  • Save tailnode/d412be76d232facd850ba7e11bbf4791 to your computer and use it in GitHub Desktop.
Save tailnode/d412be76d232facd850ba7e11bbf4791 to your computer and use it in GitHub Desktop.
range slice and map
package main
import (
"fmt"
"sync"
)
func main() {
testSlice()
testMap()
}
func testSlice() {
s := []int{1, 2, 3}
once := sync.Once{}
for i, v := range s {
once.Do(func() {
s = []int{}
})
fmt.Println(i, v)
}
s = []int{1, 2, 3}
once = sync.Once{}
for i, v := range s {
once.Do(func() {
s[0] = 10
s[1] = 20
s[2] = 30
})
fmt.Println(i, v)
}
s = []int{1, 2, 3}
once = sync.Once{}
for i := range s {
once.Do(func() {
s[0] = 10
s[1] = 20
s[2] = 30
})
fmt.Println(i, s[i])
}
}
func testMap() {
m := map[int]int{
0: 0,
1: 1,
2: 2,
}
once := sync.Once{}
for k, v := range m {
once.Do(func() {
m[3] = 3
})
// 不一定能打印出 3
fmt.Println(k, v)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment