Golang encoding/binary.ReadUvarint() function example

package encoding/binary

ReadUvarint reads an encoded unsigned integer from r(1st parameter) and returns it as a uint64.

Golang encoding/binary.ReadUvarint() function usage example

 package main

 import (
 "bytes"
 "encoding/binary"
 "fmt"
 )

 func main() {
 var emptybuf []byte
 var buf []byte = []byte{144, 192, 192, 129, 132, 136, 140, 144, 16, 0, 1, 1}
 var overflowbuf []byte = []byte{144, 192, 192, 129, 132, 136, 140, 144, 192, 192, 1, 1}

 num, err := binary.ReadUvarint(bytes.NewBuffer(emptybuf))
 fmt.Println(num, err) 

 num, err = binary.ReadUvarint(bytes.NewBuffer(buf))
 fmt.Println(num, err) 

 num, err = binary.ReadUvarint(bytes.NewBuffer(overflowbuf))
 fmt.Println(num, err)
 }

Output :

0 EOF

1161981756374523920

4620746270195064848 binary: varint overflows a 64-bit integer

Reference :

http://golang.org/pkg/encoding/binary/#ReadUvarint

  See also : Golang encoding/binary.ReadVarint() function example

Advertisement