go定义chan和go结构体成员大写规则

最近学习go非常好用,踩了两个容易出错的点记录一下

1 go定义一个chan后,通道是 无缓冲 的, 必须make一下,要不然发给它,它也不响应

2、go的结构体成员只有 可导出 的字段才会被 编码/解码。必须以大写字母开头的字段才是可导出的

var data struct {
    Size    uint16
    Version uint8
}
r := bytes.NewReader(message)

if err := binary.Read(r, binary.LittleEndian, &data); err != nil {
        fmt.Println("binary.Read failed:", err)
}