前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go编程基础-基础篇 6

Go编程基础-基础篇 6

原创
作者头像
未来最可爱的人
修改2021-03-01 14:30:36
2170
修改2021-03-01 14:30:36
举报
文章被收录于专栏:编程基础编程基础

通道的声明和定义

通道可以理解为一种特殊的变量,一般用于线程之间的数据传输。声明之后并不能直接使用,需要使用内置函数 make() 来创建一下通道变量才可以使用。

代码语言:javascript
复制
var c chan int //声明一个存放int类型数据的通道
c = make(chan int, 1) // 创建一个长度为1的通道

通道的使用

使用 <- 符号来向通道中塞取数据。放在通道右边 chan <-,就是塞数据,放在通道左边 <- chan ,就是取数据。

代码语言:javascript
复制
package main

import "fmt"

func main() {
	c := make(chan int, 1)
	c <- 10
	i := <-c
	fmt.Println(i)
}

通道结合 select 流程控制

用于通道的流程控制语句:select...case。使用这个语句可以同时监听数个通道,非常适合用于并发时的进程调度,或者模块之间的解耦合。

代码语言:javascript
复制
package main

import "fmt"

func main() {
	c := make(chan int, 1)

	for a := 0; a < 2; a++ {
		select {
		case i := <-c:
			fmt.Println("从通道取", i)
		case c <- 10:
			fmt.Println("将10塞入通道")
		}
	}
}
代码语言:javascript
复制
将10塞入通道
从通道取 10

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 通道的声明和定义
  • 通道的使用
  • 通道结合 select 流程控制
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档