在 Golang 中查看变量类型

2020-06-09

记录下常用的两种查看变量类型的方法,也适用于判断 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