package main
import "fmt"
func main() {
//make channel
c := make(chan int)
//send function
go func(send chan<- int) {
for i := 0; i < 8; i++ {
send <- i
}
close(send)
}(c)
//receive roop
for {
value,ok := <-c
if !ok {
break
}
//receive
fmt.Println(value)
}
}
package main
import (
"fmt"
)
func dofunc(intval int,s chan<- int) {
for i := 0; i < 100; i++ {
if i+1 == intval && intval % 2 == 0 {
s <- intval
close(s)
}
}
}
func main() {
c := make(chan int)
go dofunc(30,c)
go dofunc(3,c)
go dofunc(4,c)
for {
value,ok := <- c
// return false when channel closed
if value > 0 {
fmt.Println("ret:", value)
break
}
if !ok {
break
}
}
}