golang 的 操作符号"<-"

yeluxing 2016-03-23 10:27:28
刚看go代码
golang 的 操作符号"<-" 到底是代表什么?
...全文
11788 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
<-是对chan类型来说的。chan类型类似于一个数组。 当<- chan 的时候是对chan中的数据读取; 相反 chan <- value 是对chan赋值。
  • 打赏
  • 举报
回复 4
goroutine是golang中在语言级别实现的轻量级线程,仅仅利用 go 就能立刻起一个新线程。多线程会引入线程之间的同步问题,在golang中可以使用channel作为同步的工具。 通过channel可以实现两个goroutine之间的通信。 创建一个channel, make(chan TYPE {, NUM}) , TYPE指的是channel中传输的数据类型,第二个参数是可选的,指的是channel的容量大小。 向channel传入数据, CHAN <- DATA , CHAN 指的是目的channel即收集数据的一方, DATA 则是要传的数据。 从channel读取数据, DATA := <-CHAN ,和向channel传入数据相反,在数据输送箭头的右侧的是channel,形象地展现了数据从‘隧道’流出到变量里。
li4c 2016-03-31
  • 打赏
  • 举报
回复
package main
import "fmt"

func fuck(c chan int)  {
	data := <- c
	fmt.Println(data)
}


func main() {
	c := make(chan int)
	go fuck(c)
	c<-12
}
可以理解为表示数据流动的方向

2,190

社区成员

发帖
与我相关
我的任务
社区描述
go语言学习与交流版
社区管理员
  • go语言社区
  • Freeman Z
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧