go管道使用1-各种数据类型使用
go里面管道使用
1.有缓冲的管道
package main
import "fmt"
func main(){
intchan:=make(chan int,3);//创建有缓冲管道
intchan <- 10;//写入管道数据
firstDara:= <- intchan;//从管道里面读取数据
fmt.Println(firstDara)
close(intchan)
}
2.管道里面map结构
package main
func main(){
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;
}
3.结构体管道
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);
}