Golang相当于Python的struct.pack/struct.unpack

Cli*_*Dog 5 go

在Python中,使用该struct模块,我可以执行类似这样的操作来获取值的压缩表示形式:

import struct
print struct.pack('L', 64)
"@\x00\x00\x00\x00\x00\x00\x00"
struct.unpack('L', '@\x00\x00\x00\x00\x00\x00\x00')
(64,)
Run Code Online (Sandbox Code Playgroud)

我想在Go做类似的事情,除非我对如何做到这一点有点不清楚.我知道我可以这样做:

import (
    "encoding/binary"
    "fmt"
)

bs := make([]byte, 8)
binary.PutUvarint(bs, uint64(64))
fmt.Printf("%s", bs)
"@"
Run Code Online (Sandbox Code Playgroud)

但那是非常不同的,可能不是我想要的.

Jim*_*imB 6

是的,"编码/二进制"是你想要的,你只是不想要可变长度格式.

https://play.golang.org/p/e81LuPO_JR

bs := make([]byte, 8)
binary.LittleEndian.PutUint64(bs, uint64(64))
fmt.Printf("%#v\n", bs)

i := binary.LittleEndian.Uint64(bs)
fmt.Println(i)
Run Code Online (Sandbox Code Playgroud)