go里面管道使用

管道使用案例[int类型]

package main
import "fmt"
func main(){
    var intchan chan int; //定义管道
    intchan=make(chan int,3);//创建管道
    intchan <- 10;//写入管道数据
    firstDara:= <- intchan;//从管道里面读取数据
    fmt.Println(firstDara);
}

 管道里面map结构

package main
func main(){
    var myMap chan map[string]string;
    myMap=make(chan map[string]string,10);

    m1:=make(map[string]string,10);
    m1["name"]="lisi";
    m1["sex"]="";
    myMap <- m1;

    m2:=make(map[string]string,10);
    m2["test"]="go";
    m2["info"]="think";
    myMap <- m2;

}

 结构体管道

package main
import "fmt"
type  Cat struct {
    Name string
    Age int
}
func main(){
    catChan:=make(chan Cat ,10);//结构体管道
    cat:=Cat{Name:"cat",Age:20}//创建构体cat赋值

    catChan <- cat;//赋值给管道
    info:= <- catChan;//取出管道
    fmt.Println(info.Name);

}

 接口管道

package main
import "fmt"
type Cat struct {
    Name string
    Age int
}
func main() {
    cat:=Cat{Name:"lisi",Age:20};
    var allChan chan interface{};
    allChan= make(chan interface{},10);
    //存入
    allChan <- cat;
    allChan <- 10;
    allChan <- "test";
    //取出
    cat1 :=  <- allChan
    handleCat:=cat1.(Cat);//类型断言
    fmt.Println(handleCat.Name);
}
原文地址:https://www.cnblogs.com/zh718594493/p/14152476.html