[Go] Go语言生成素数的代码演示 →→→→→进入此内容的聊天室

来自 , 2019-06-18, 写在 Go, 查看 112 次.
URL http://www.code666.cn/view/6ef07f92
  1. package main
  2.  
  3. // 生成2, 3, 4, ... 到 channel 'ch'中.
  4.  
  5. func Generate(ch chan<- int) {
  6.  
  7.         for i := 2; ; i++ {
  8.  
  9.                 ch <- i      // Send 'i' to channel 'ch'.
  10.  
  11.         }
  12.  
  13. }
  14.  
  15. // 从管道复制值 'in' 到 channel 'out',
  16.  
  17. // 移除可整除的数 'prime'.
  18.  
  19. func Filter(in <-chan int, out chan<- int, prime int) {
  20.  
  21.         for {
  22.  
  23.                 i := <-in    // 接收值 'in'.
  24.  
  25.                 if i%prime != 0 {
  26.  
  27.                         out <- i     // 传入 'i' 到 'out'.
  28.  
  29.                 }
  30.  
  31.         }
  32.  
  33. }
  34.  
  35. func main() {
  36.  
  37.         ch := make(chan int)    // Create a newchannel.
  38.  
  39.         go Generate(ch) // Launch Generate goroutine.
  40.  
  41.         for i := 0; i < 10; i++ {
  42.  
  43.                 prime := <-ch
  44.  
  45.                 print(prime, "\n")
  46.  
  47.                 ch1 := make(chan int)
  48.  
  49.                 go Filter(ch, ch1, prime)
  50.  
  51.                 ch = ch1
  52.  
  53.         }
  54.  
  55. }
  56.  
  57. //go/6361

回复 "Go语言生成素数的代码演示"

这儿你可以回复上面这条便签

captcha