在 Golang 中查看变量类型

 

2020-06-09

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

fmt

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

1
package main
2
3
import "fmt"
4
5
func main() {
6
str := "Hello world"
7
fmt.Printf("%T", str)
8
}
9
// 返回 string

reflect

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

1
package main
2
3
import (
4
"fmt"
5
"reflect"
6
)
7
8
func main() {
9
str := "Hello world"
10
fmt.Println(reflect.TypeOf(str))
11
}
12
// 返回 string

type switch

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

1
package main
2
3
import "fmt"
4
5
var str interface{}
6
str = "Hello world"
7
8
switch str.(type) {
9
case string:
10
fmt.Println("string")
11
case int:
12
fmt.Println("int")
13
default:
14
fmt.Println("other)
15
}
16
// 返回 string