yuankan20081

第 3343 号会员 /

回复了 Alber 创建的主题: 64行代码实现零拷贝go的TCP拆包粘包

这测试用例改改你代码都跑不过吧???

b := new(bytes.Buffer)
for{
    io.CopyN(b, conn, HEAD)
    io.CopyN(b, conn, BODY)
    fmt.Println(b.Bytes()[HEAD:])
    b.Reset()
}

回复了 winxxp 创建的主题: 变量作用域问题

楼主贴出来的代码和楼主贴出来的英文解释并没有冲突,注意看解释里面说了一句declared earlier in the same block

回复了 winxxp 创建的主题: 变量作用域问题

楼主贴出来的很清楚,只有之前在同一个block里面声明贵相同类型的变量才会有热declaration这种情况发生,很明显在同一个block里面之前并没有声明过a,所以后面的啊,c=4,5是重新声明的一个变量,和block外面的a没有关系

楼上不知道回答了什么。。。

回复了 winxxp 创建的主题: 有什么高效的方法将[]byte转换到[]float32

var b []byte = []byte{0x00, 0x00, 0x00, 0x00}
br := bytes.NewReader(b)
f32 := make([]float32, len(b)/4) // 自己判断一下长度哦
binary.Read(br, binary.LittleEndian, &f32)
fmt.Println(f32)

type Foo struct{
    Id float32
    Age float32
}
var foo Foo
fmt.Println(binary.Read(conn, binary.LittleEndian, &foo)) // conn 就是连接 net.Conn
// 不要直接用unsafe.Pointer来转换,不好控制的