golang chan数据类型
golang数据类型有基本数据类型: int float long double string 也包含有 struct array map point类型,具体定义是如何使用的
package concurrent
import "fmt"
//import "time"
type People struct {
Name string
}
var channel chan *People
func AddPerson(p *People) {
channel <- p
}
func GetPersonInfo() *People {
return <-channel
}
func Start() {
//注意通道在使用之前一定要进行初始化操作,否则进行通道的写入或者读取时候将出现错误
// int
//var ch chan int
// ch = make(chan int)
//var ch chan string
//ch = make(chan string)
//var ch chan float32
//ch = make(chan float32)
//var ch chan map[string] string
//ch = make(chan map[string]string)
//var ch chan People
//ch = make(chan People)
//var ch chan *People
//ch = make(chan *People)
channel = make(chan * People)
p := People{"冬天"}
go AddPerson(&p)
v :=GetPersonInfo()
fmt.Println("结果是 :",v.Name)
}
结果是 : 冬天
二、单通道设置
格式:
定义单向写入
var channelName chan <- ElementType
/ 定义单向读出
var channelName <- chan ElementType
package com
import "fmt"
func Check(wCh <- chan int,rCh chan <- bool) {
va :=<- wCh
fmt.Println(va)
rCh <- true
}
func Start() {
var wCh chan int
wCh = make(chan int) //通道一定要进行初始化
var rCh chan bool
rCh = make(chan bool)////通道一定要进行初始化
go Check(wCh,rCh)
wCh <- 100
fmt.Println(<- rCh)
fmt.Println("com",wCh,rCh)
}
运行结果是:
100
true
com 0x11f8e300 0x11f8e340