Golang expvar.KeyValue type example

package expvar

KeyValue represents a single entry in a Map.

Golang expvar.KeyValue type usage example

 package main

  import (
 "fmt"
 "net/http"
 "expvar"
  )

  func kvfunc(kv expvar.KeyValue) { // <-- here
 fmt.Println(kv.Key, kv.Value)
  }

  func main() {
 var inerInt int64 = 10
 pubInt := expvar.NewInt("Int")
 pubInt.Set(inerInt)
 pubInt.Add(2)

 var inerFloat float64 = 1.2
 pubFloat := expvar.NewFloat("Float")
 pubFloat.Set(inerFloat)
 pubFloat.Add(0.1)

 var inerString string = "hello gophers"
 pubString := expvar.NewString("String")
 pubString.Set(inerString)

 pubMap := expvar.NewMap("Map").Init()
 pubMap.Set("Int", pubInt)
 pubMap.Set("Float", pubFloat)
 pubMap.Set("String", pubString)
 pubMap.Add("Int", 1)
 pubMap.Add("NewInt", 123)
 pubMap.AddFloat("Float", 0.5)
 pubMap.AddFloat("NewFloat", 0.9)
 pubMap.Do(kvfunc)

 expvar.Do(kvfunc) 
 
 http.HandleFunc("/", func (w http.ResponseWriter, r *http.Request) {
 fmt.Fprint(w, "hello gophers")
 })
 err := http.ListenAndServe(":8080", nil)
 if err != nil {
 panic(err)
 }

  }

Reference :

http://golang.org/pkg/expvar/#KeyValue

Advertisement