分享
go语法:channel作为参数的传递
x369201170 · · 12948 次点击 · · 开始浏览这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
在声明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有所不同,刚开始看一直没搞懂,
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信12948 次点击
下一篇:Go语言的Http并发
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
在声明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有所不同,刚开始看一直没搞懂,