zoukankan      html  css  js  c++  java
  • go chan 实现斐波那契数列

    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)
    }
    

      

  • 相关阅读:
    1
    webpack
    webpack32
    41324
    124
    CSS 32
    Git 分支管理
    Git 标签管理
    datetime的timedelta对象
    unittest中的testCase执行顺序
  • 原文地址:https://www.cnblogs.com/smallleiit/p/13205327.html
Copyright © 2011-2022 走看看