1. 一篇好的文章:
    https://www.cnblogs.com/IT-Evan/p/CloudNative.html

  2. Go: for循环中的闭包
    请看以下代码:

    func main() {
     s := []string{"a", "b", "c"}
     for _, v := range s {
         go func() {
             fmt.Println(v)
         }()
     }
     select {}
    }
    

    在Go中,闭包只能以引用形式捕获外部变量。
    另外,在上面for循环中,每一次loop,都会更新变量v
    因此,在上面这段代码中,执行结果并不确定,且大概率为

    c
    c
    c