for {
		select {
		case msg, ok := <-msgChan:
			if !ok {
				return
			}
			limit <- struct{}{} 
			go func(t *Message) {
				send(t)
				<-limit
			}(msg)
		}
	}
msg 是*Message
这样的传参会导致 t 被下次循环的 msg 覆盖吗 (其实可以不这么控制并发,如果只能这么写的话
|  |      1thet      2021-10-14 22:44:43 +08:00 via iPhone 不会 | 
|  |      2ch2      2021-10-14 23:18:58 +08:00 := 出来是一个新的,下一次循环跟上一次没关系 | 
|  |      3rrfeng      2021-10-15 01:32:35 +08:00 via Android 这个 select 么有用,可以删掉。 | 
|  |      4rrfeng      2021-10-15 01:33:52 +08:00 via Android 这里的变量 t 没问题的,但是要小心你其他地方的程序同时操作指针所指向的对象,可能会有意想不到的后果。 | 
|  |      5keepfun      2021-10-15 10:02:19 +08:00 对说 不会 的标示存疑 观望中 | 
|  |      6x1aoYao      2021-10-15 11:13:59 +08:00 不会。这里即使用捕获而非传参的方式也不会 但是 go 的 for range 是一个变量要注意别直接 go 捕获 | 
|  |      8index90      2021-10-15 12:19:11 +08:00 没有问题,注意与以下的区别: go func() { send(msg) <-limit }() 这样写就有问题 |