mirror of
https://github.com/chubin/cheat.sheets
synced 2024-11-11 01:10:31 +00:00
27 lines
615 B
Plaintext
27 lines
615 B
Plaintext
// - A send to a nil channel blocks forever
|
|
var c chan string
|
|
c <- "Hello, World!"
|
|
// fatal error: all goroutines are asleep - deadlock!
|
|
|
|
// - A receive from a nil channel blocks forever
|
|
var c chan string
|
|
fmt.Println(<-c)
|
|
// fatal error: all goroutines are asleep - deadlock!
|
|
|
|
// - A send to a closed channel panics
|
|
var c = make(chan string, 1)
|
|
c <- "Hello, World!"
|
|
close(c)
|
|
c <- "Hello, Panic!"
|
|
// panic: send on closed channel
|
|
|
|
// - A receive from a closed channel returns the zero value immediately
|
|
var c = make(chan int, 2)
|
|
c <- 1
|
|
c <- 2
|
|
close(c)
|
|
for i := 0; i < 3; i++ {
|
|
fmt.Printf("%d ", <-c)
|
|
}
|
|
// 1 2 0
|