记录下常用的两种查看变量类型的方法,也适用于判断 Golang 返回值类型。

fmt

比较便捷的便是使用 fmt 包中的 Printf:

package main

import "fmt"

func main() {
  str := "Hello world"
  fmt.Printf("%T", str)
}
// 返回 string

reflect

第二种便是使用 reflect 来获取:

package main

import (
  "fmt"
  "reflect"
)

func main() {
  str := "Hello world"
  fmt.Println(reflect.TypeOf(str))
}
// 返回 string

type switch

最后一种较为繁琐,只适用于 switch 语句,而且变量必须是interface类型:

package main

import "fmt"

var str interface{}
str = "Hello world"

switch str.(type) {
  case string:
    fmt.Println("string")
  case int:
    fmt.Println("int")
  default:
    fmt.Println("other)
}
// 返回 string