Golang encoding/binary.ReadVarint() function example

package encoding/binary

ReadVarint reads an encoded signed integer from r (1st parameter) and returns it as an int64.

Golang encoding/binary.ReadVarint() 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.ReadVarint(bytes.NewBuffer(emptybuf))
 fmt.Println(num, err)

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

 num, err = binary.ReadVarint(bytes.NewBuffer(overflow))
 fmt.Println(num, err) 
 }

Output :

0 EOF

580990878187261960

2310373135097532424 binary: varint overflows a 64-bit integer

Reference :

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

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

Advertisement