golang 判断变量是否为slice、map、还是int、string等
在Go语言中,可以使用反射包(reflect)来判断变量的类型。下面是一个示例代码,可以判断变量是否为slice、map、还是int、string等类型:
package main
import (
"fmt"
"reflect"
)
func main() {
var variable interface{} = []int{1, 2, 3} // 变量为slice类型
// 使用反射判断变量类型
switch reflect.TypeOf(variable).Kind() {
case reflect.Slice:
fmt.Println("变量是一个slice")
case reflect.Map:
fmt.Println("变量是一个map")
case reflect.Int:
fmt.Println("变量是一个int")
case reflect.String:
fmt.Println("变量是一个string")
default:
fmt.Println("变量是其他类型")
}
}
在上述代码中,我们定义了一个变量variable,并使用反射包的TypeOf函数获取其类型,然后使用Kind方法获取其底层类型。接着,使用switch语句判断变量的底层类型是哪种类型,并打印相应的结果。
请注意,reflect.TypeOf(variable).Kind()返回的是一个常量,可以与reflect.Slice、reflect.Map、reflect.Int等进行比较,以判断变量的具体类型
原文地址: https://www.cveoy.top/t/topic/iZXU 著作权归作者所有。请勿转载和采集!