Different Ways to Find the Type of Variable in Golang

17 May, 2020
Variable is a placeholder of the information which can be changed at runtime. And variables allow to Retrieve and Manipulate the stored information.There are 3 ways to find the type of variables in Golang as follows:
Using reflect.TypeOf Function
Using reflect.ValueOf.Kind() Function
Using %T with Printf
Example:
// Golang program to show the different ways// to find the Type of a Variablepackage main  // import the fmt and reflect packageimport (    "fmt"    "reflect")  //main function  func main() {      // string type    var1 := "hello world"      // integer    var2 := 10      // float    var3 := 1.55      // boolean    var4 := true      // shorthand string array declaration    var5 := []string{"foo", "bar", "baz"}      // map is reference datatype    var6 := map[int]string{100: "Ana", 101: "Lisa", 102: "Rob"}      // complex64 and complex128    // is basic datatype    var7 := complex(9, 15)      // using %T format specifier to    // determine the datatype of the variables      fmt.Println("Using Percent T with Printf")    fmt.Println()      fmt.Printf("var1 = %T\n", var1)    fmt.Printf("var2 = %T\n", var2)    fmt.Printf("var3 = %T\n", var3)    fmt.Printf("var4 = %T\n", var4)    fmt.Printf("var5 = %T\n", var5)    fmt.Printf("var6 = %T\n", var6)    fmt.Printf("var7 = %T\n", var7)      // using TypeOf() method of reflect package    // to determine the datatype of the variables    fmt.Println()    fmt.Println("Using reflect.TypeOf Function")    fmt.Println()      fmt.Println("var1 = ", reflect.TypeOf(var1))    fmt.Println("var2 = ", reflect.TypeOf(var2))    fmt.Println("var3 = ", reflect.TypeOf(var3))    fmt.Println("var4 = ", reflect.TypeOf(var4))    fmt.Println("var5 = ", reflect.TypeOf(var5))    fmt.Println("var6 = ", reflect.TypeOf(var6))    fmt.Println("var7 = ", reflect.TypeOf(var7))      // using ValueOf() method of reflect package    // to determine the value of the variable    // Kind() method returns the datatype of the    // value fetched by the ValueOf() method    fmt.Println()    fmt.Println("Using reflect.ValueOf.Kind() Function")    fmt.Println()      fmt.Println("var1 = ", reflect.ValueOf(var1).Kind())    fmt.Println("var2 = ", reflect.ValueOf(var2).Kind())    fmt.Println("var3 = ", reflect.ValueOf(var3).Kind())    fmt.Println("var4 = ", reflect.ValueOf(var4).Kind())    fmt.Println("var5 = ", reflect.ValueOf(var5).Kind())    fmt.Println("var6 = ", reflect.ValueOf(var6).Kind())    fmt.Println("var7 = ", reflect.ValueOf(var7).Kind())  }
Output:
Using Percent T with Printf

var1 = string
var2 = int
var3 = float64
var4 = bool
var5 = []string
var6 = map[int]string
var7 = complex128

Using reflect.TypeOf Function

var1 =  string
var2 =  int
var3 =  float64
var4 =  bool
var5 =  []string
var6 =  map[int]string
var7 =  complex128

Using reflect.ValueOf.Kind() Function

var1 =  string
var2 =  int
var3 =  float64
var4 =  bool
var5 =  slice
var6 =  map
var7 =  complex128

Picked
Go Language
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
strings.Replace() Function in Golang With Examples
fmt.Sprintf() Function in Golang With Examples
How to Split a String in Golang?
Interfaces in Golang
How to Parse JSON in Golang?
How to convert a string in lower case in Golang?
How to Trim a String in Golang?
How to compare times in Golang?
Inheritance in GoLang
Pointers in Golang