golang中通過循環管道來取值


golang中管道(chan)的一些用法

golang中的管道可以用於各個goroute方法的數據交互,管道有一些方法:

package main

import (
	"fmt"
)

func main() {
	var (
		IntChan = make(chan int, 1000)
		//ResultChan = make(chan int, 1000)
	)

	for i := 0; i < 10; i++ {
		IntChan <- i
	}
	close(IntChan)  // 關閉管道,否則下面的for循環會一直循環下去
	fmt.Println("循環管道取值前管道內容個數: ", len(IntChan))

	for v := range IntChan { // 循環管道: 循環一次即相當於從中取出一個值,管道內的值取空則退出循環
		fmt.Println(v)
	}
	fmt.Println("循環管道取值后管道內容個數: ", len(IntChan))

	//IntChan <- 520  管道已經關閉了,無法插入值了
	fmt.Println("循環完之后管道中的值: ", <-IntChan)
	fmt.Println("循環完之后管道中的值: ", <-IntChan)
}

循環管道取值前管道內容個數:  10
0
1
2
3
4
5
6
7
8
9
循環管道取值后管道內容個數:  0
循環完之后管道中的值:  0
循環完之后管道中的值:  0


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM