読者です 読者をやめる 読者になる 読者になる

Hello Concurrency

0から順番に整数を生成する無名関数それを受け取ってresultに追加する処理が並行して処理されてるってことだと思います。go (処理)で処理がバックグラウンドで行われ、その処理結果がch(チャンネル)を通して得られるっと。

package main

import "fmt"

func main() {
        ch := make(chan int)
        go func() {
                for i := 0; ; i++ {
                        ch <- i
                }
        }()
        result := ""
        for i := 0; i < 10; i++ {
                result += fmt.Sprintf("%d, ", <-ch)
        }
        fmt.Printf("%s\n", result[:len(result)-2]) //=> "1, 2, 3, 4, 5, 6, 7, 8, 9\n"
}