讨论数量:
package main
import "fmt"
type Dog struct {
Nmae string
}
func main() {
ch := make(chan Dog, 1)
var d Dog
d.Nmae = "大黄"
ch <- d
close(ch)
result := <- ch
fmt.Println(result)
}
输出
{大黄}
结果:可以
- 可以 在通道中发送和接收结构体类型的值 ,需要确保 结构体类型的值是可序列化
package main
import (
"fmt"
)
// 字段确保可导出
type Dog struct {
Name string
Age int
}
func main() {
// 可以在通道中发送和接收结构体类型的值
// 定义一个缓冲区的 channel
dogCh := make(chan Dog, 1)
// 结束 main 之前 关闭
defer close(dogCh)
// dog 在 chan 中传输,需要确保结构体类型的值是可序列化
var dog Dog
dog.Name = "xiaohei"
dog.Age = 1
// 发送
dogCh <- dog
// 读取
result := <-dogCh
fmt.Println(result)
}
推荐文章: