Golang 双向, 单向 channel 爬取 股票信息 chan <-, 解析 <-chan
2021/10/6 23:11:29
本文主要是介绍Golang 双向, 单向 channel 爬取 股票信息 chan <-, 解析 <-chan,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
channel 提供了一种通信机制, 定向 py, java 中的 消息队列 package main import "fmt" func main() { // 定义一个 channel 用来通信 他是引用类型 默认 nil var msg chan string // byte // slice, map , channel 使用 make 进行初始化 msg = make(chan string) // 第一种初始化方式: 无缓冲 msg = make(chan string, 1) // 带缓冲空间 if msg != nil{ msg <- "frank" } data := <- msg fmt.Println(data) } // 进一步学习 package main import ( "fmt" "sync" ) func consumer(queue chan string){ defer wg.Done() data := <- queue fmt.Println(data) } var wg = sync.WaitGroup{} func main() { wg.Add(2) var msg chan string = make(chan string, 1) msg <- "frank" go consumer(msg) msg <- "tom" go consumer(msg) wg.Wait() } // for range 遍历 channel package main import ( "fmt" "sync" ) func consumer(queue chan string){ defer wg.Done() for data:=range queue { fmt.Println(data) } } var wg = sync.WaitGroup{} func main() { wg.Add(1) var msg chan string = make(chan string, 1) msg <- "frank" go consumer(msg) msg <- "tom" close(msg) // msg <- "may" // send on closed channel // 已经关闭的 channel 消费者端 还可以继续取数据,但是 发送端 不可以再发送数据 wg.Wait() } // 优雅写法 for { data, ok := <- queue if(!ok) { break } fmt.Println(data) } msg := make(chan int, 1) // 双向的 channel 这不就是双端队列??? var msg = make(chan<- int, 1) // 这就是只能往里面放值的 单向的channel var msg <-chan int // 这就是只能从里面取值的 单向 channel // 一般 只在 消费 / 生产 方法里 设置 单向的 chan, 主的还是 双向 chan
这篇关于Golang 双向, 单向 channel 爬取 股票信息 chan <-, 解析 <-chan的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24MongoDB资料:新手入门完全指南
- 2024-12-20go-zero 框架的 RPC 服务 启动start和停止 底层是怎么实现的?-icode9专业技术文章分享
- 2024-12-19Go-Zero 框架的 RPC 服务启动和停止的基本机制和过程是怎么实现的?-icode9专业技术文章分享
- 2024-12-18怎么在golang中使用gRPC测试mock数据?-icode9专业技术文章分享
- 2024-12-15掌握PageRank算法核心!你离Google优化高手只差一步!
- 2024-12-15GORM 中的标签 gorm:"index"是什么?-icode9专业技术文章分享
- 2024-12-11怎么在 Go 语言中获取 Open vSwitch (OVS) 的桥接信息(Bridge)?-icode9专业技术文章分享
- 2024-12-11怎么用Go 语言的库来与 Open vSwitch 进行交互?-icode9专业技术文章分享
- 2024-12-11怎么在 go-zero 项目中发送阿里云短信?-icode9专业技术文章分享
- 2024-12-11怎么使用阿里云 Go SDK (alibaba-cloud-sdk-go) 发送短信?-icode9专业技术文章分享