すべて。非常に奇妙な問題に直面しています。(私が眠るべき時はずっと過ぎているかもしれません、そして私は何か明白なものを見落としています。)
[]byteいくつかの16進デコードの結果として、長さが8のaがあります。使用するにはを作成する必要がありuint64ます。binary.Uvarint()、fromを使用してみencoding/binaryましたが、配列の最初のバイトしか使用していないようです。次の例を考えてみましょう。
package main
import (
"encoding/binary"
"fmt"
)
func main() {
array := []byte{0x00, 0x01, 0x08, 0x00, 0x08, 0x01, 0xab, 0x01}
num, _ := binary.Uvarint(array[0:8])
fmt.Printf("%v, %x\n", array, num)
}
それが実行されると、16進数では。である必要がありますが、numとして表示されます。さらに、から2番目の値を取得した場合、それはバッファから読み取られたバイト数です。これは、実際には1ですが、私の知る限り、8である必要があります。0000108000801ab01binary.Uvarint()
私はこれを間違って解釈していますか?もしそうなら、私は代わりに何を使うべきですか?
ありがとう、みなさん。:)