go routineのchannelについて勉強したので整理する
package main import ( "fmt" ) // sliceとchannelを受け付ける func goroutine(s []int, c chan int) { sum := 0 for _, v := range s { sum += v } // channelに送信 c <- sum } // channel func main() { // スライスのinteger s := []int{1, 2, 3, 4, 5} // channel (makeで書く) // makeはキューの働きをする c := make(chan int) go goroutine(s, c) // チャネルを受信。ブロッキングの役割があるので、入ってくるまでずっと待っている状態 x := <-c fmt.Println(x) }
結果 “` 15 “`