无缓冲channel

chan无人接收会一直阻塞。

func Echo(nums []int) <-chan int {
	out := make(chan int)
     // 这里一定要启动一个协程,不然会panic go func() { for _, n := range nums { out <- n } close(out) }() return out }
func TestEcho(t *testing.T) {
	nums := []int{1, 2, 3, 4}
	out := Echo(nums)
	for v := range out {
		fmt.Printf("%d", v)
	}
}

 

有缓冲chan

不强制启动一个协程,先写入数据之后,后续程序慢慢读取。

相关文章:

  • 2021-09-16
  • 2021-09-15
  • 2021-11-23
  • 2021-10-01
  • 2022-12-23
  • 2021-12-10
  • 2021-05-24
  • 2022-12-23
猜你喜欢
  • 2021-07-07
  • 2021-11-22
  • 2022-12-23
  • 2021-11-01
  • 2022-02-01
  • 2022-02-27
  • 2022-12-23
相关资源
相似解决方案