Go 语言中的 Channel: 详解通信机制与使用
Go语言中的channel是一种用于在不同goroutine之间进行通信的机制。可以通过make函数来创建一个channel,如下所示:
ch := make(chan int)
在这个例子中,我们创建了一个名为ch的channel,其中传输的数据类型为int。
在使用channel时,我们可以使用<-符号来向channel中发送或接收数据,如下所示:
ch <- 10 // 向ch中发送数据 10
x := <- ch // 从ch中接收数据,并将其赋值给变量x
在这个例子中,我们向ch中发送了一个整数10,并从ch中接收了一个整数,并将其赋值给变量x。需要注意的是,在接收数据时,如果没有数据可用,goroutine会被阻塞,直到有数据可用为止。
另外,channel还支持使用close函数来关闭channel,如下所示:
close(ch)
在这个例子中,我们关闭了channel ch。需要注意的是,一旦channel被关闭,就不能再向其中发送数据,但仍然可以从其中接收数据,直到channel中的所有数据都被接收完为止。
chan可以随机访问吗?
不可以。channel是一种先进先出的数据结构,只能按照先后顺序访问其中的数据。不能随机访问其中的数据。
原文地址: http://www.cveoy.top/t/topic/jGMl 著作权归作者所有。请勿转载和采集!