Advertisement

掌握go通道方式的类型

阅读量:

类型分类与特征解析

1:通道类型所承载的数值本身具备并发安全性;

2:通道属于引用类型,其对应的空值表现为nil;

3:在使用通道之前,必须先行完成声明与初始化操作;

进行通道声明的方式如下:

var ch chan int

若需同时完成声明与初始化,可采用以下方式:

ch = make(chan int,2)

二:通道操作

1:通过通道实现数据的传输与接收操作

ch := make(chan int,2)

将数值10传送至通道ch中,具体操作为ch <- 10

从通道ch中获取数据并将其存储于变量x中,表达式为x := <- ch

多次发送数据的操作如下:

ch <- 1
ch <- 2
ch <- 3

相对应地,可以进行多次接收操作:

x := <- ch
y := <- ch
z := <- ch

需特别注意的是,在接收数据时,其执行次数不应超过发送数据的次数

2:通道的终止处理

close(ch)

在通道被关闭之后,将不再允许向其中发送数据,但仍然可以继续从该通道中接收已存在的数据

三:通道的特性

首先需要明确的是,当元素值从外部进入通道时,其实际进入的是该元素值的副本,而非操作符右侧所引用的原始元素值。当元素值从通道传出至外部时,整个过程分为

全部评论 (0)

还没有任何评论哟~