首页 > 其他 > 详细

go chan 实现斐波那契数列

时间:2020-06-28 23:08:34      阅读:74      评论:0      收藏:0      [点我收藏+]
package main

import "fmt"

func main()  {
	ch := make(chan int)
	q := make(chan int)

	go func(ch, q chan int) {
		for i := 0; i < 10; i++ {
			num := <-ch
			fmt.Println(num)
		}
		q <- 1
	}(ch, q)

	fibonacci := func(ch, q chan int) {
		x, y := 0, 1
		for {
			select {
			case ch <- x: // 写入
				x, y = y, x+y
				break // 你觉得是否会影响 for 语句的循环?
			case <-q: // 读取
				fmt.Println("quit")
				return
			}
		}
	}
	fibonacci(ch, q)
}

  

go chan 实现斐波那契数列

原文:https://www.cnblogs.com/smallleiit/p/13205327.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!