mirror of
https://github.com/teivah/100-go-mistakes.git
synced 2026-06-22 09:27:16 +08:00
62 lines
633 B
Go
62 lines
633 B
Go
package main
|
|
|
|
import "fmt"
|
|
|
|
func listing1() {
|
|
i := 0
|
|
go func() {
|
|
i++
|
|
}()
|
|
}
|
|
|
|
func listing2() {
|
|
i := 0
|
|
go func() {
|
|
i++
|
|
}()
|
|
fmt.Println(i)
|
|
}
|
|
|
|
func listing3() {
|
|
i := 0
|
|
ch := make(chan struct{})
|
|
go func() {
|
|
<-ch
|
|
fmt.Println(i)
|
|
}()
|
|
i++
|
|
ch <- struct{}{}
|
|
}
|
|
|
|
func listing4() {
|
|
i := 0
|
|
ch := make(chan struct{})
|
|
go func() {
|
|
<-ch
|
|
fmt.Println(i)
|
|
}()
|
|
i++
|
|
close(ch)
|
|
}
|
|
|
|
func listing5() {
|
|
i := 0
|
|
ch := make(chan struct{}, 1)
|
|
go func() {
|
|
i = 1
|
|
<-ch
|
|
}()
|
|
ch <- struct{}{}
|
|
fmt.Println(i)
|
|
}
|
|
|
|
func listing6() {
|
|
i := 0
|
|
ch := make(chan struct{})
|
|
go func() {
|
|
i = 1
|
|
<-ch
|
|
}()
|
|
ch <- struct{}{}
|
|
fmt.Println(i)
|
|
}
|