Skip to content

【1】管道的定义:

var 变量名 chan 数据类型 PS1:chan管道关键字 PS2:数据类型指的是管道的类型,里面放入数据的类型,管道是有类型的,int类型的管道只能写入整数int PS3:管道是引用类型,必须初始化才能写入数据,即make后才能使用

【2】案例:

go
package main

import(
        "fmt"
)

func main(){
        //定义管道 、 声明管道 ---> 定义一个int类型的管道
        var intChan chan int
        //通过make初始化:管道可以存放3个int类型的数据
        intChan = make(chan int,3)

        //证明管道是引用类型:
        fmt.Printf("intChan的值:%v",intChan) // 0xc000112080

        //向管道存放数据:
        intChan<- 10
        num := 20
        intChan<- num
        intChan<- 40
        //注意:不能存放大于容量的数据:
        //intChan<- 80

        //在管道中读取数据:
        num1 := <-intChan
        num2 := <-intChan
        num3 := <-intChan

        fmt.Println(num1)
        fmt.Println(num2)
        fmt.Println(num3)

        //注意:在没有使用协程的情况下,如果管道的数据已经全部取出,那么再取就会报错:
        num4 := <-intChan
        fmt.Println(num4)
        //输出管道的长度:
        fmt.Printf("管道的实际长度:%v,管道的容量是:%v",len(intChan),cap(intChan))
}

Java · Golang · Rust