Wednesday, November 13, 2019

go reflect - How to find a type of an object in Go?



How do I find the type of an object in Go? In Python, I just use typeof to fetch the type of object. Similarly in Go, is there a way to implement the same ?



Here is the container from which I am iterating:



for e := dlist.Front(); e != nil; e = e.Next() {

lines := e.Value
fmt.Printf(reflect.TypeOf(lines))
}


I am not able to get the type of the object lines in this case which is an array of strings.


Answer



The Go reflection package has methods for inspecting the type of variables.



The following snippet will print out the reflection type of a string, integer and float.




package main

import (
"fmt"
"reflect"
)

func main() {


tst := "string"
tst2 := 10
tst3 := 1.2

fmt.Println(reflect.TypeOf(tst))
fmt.Println(reflect.TypeOf(tst2))
fmt.Println(reflect.TypeOf(tst3))

}



see: http://play.golang.org/p/XQMcUVsOja to view it in action.



More documentation here: http://golang.org/pkg/reflect/#Type


No comments:

Post a Comment

hard drive - Leaving bad sectors in unformatted partition?

Laptop was acting really weird, and copy and seek times were really slow, so I decided to scan the hard drive surface. I have a couple hundr...