在声明channel对象的参数时,一定要写成 c chan xxx,xxx代表channel的类型。例如
package main import ( "fmt" //"time" ) func main() { c := make(chan bool, 1) for i := 0; i < 10; i++ { go Go(c, i) } <-c } func Go(c chan bool, index int) { sum := 0 for i := 0; i < 1000000; i++ { sum += i } fmt.Println(sum) c <- true }
这里的chan C变量是bool类型,所以需要在声明方法的参数时,也要加上这个bool类型。
这点跟java有所不同,刚开始看一直没搞懂,
有疑问加站长微信联系(非本文作者)