最近学习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) }