Go 语言中数据类型的判断,本文介绍三种方法。
方法一:使用i.(type)结合空接口(interface{})
func main() { v1 := "中国你好" v2 := 20 var v3 byte = 65 fmt.Printf("v1的数据类型为:%s\n", checkType(v1)) fmt.Printf("v2的数据类型为:%s\n", checkType(v2)) fmt.Printf("v3的数据类型为:%s\n", checkType(v3))}func checkType(i interface{}) string{ switch i.(type) { case string : return "string" case int : return "int" case byte : return "byte" } return ""}
输出:
v1的数据类型为:stringv2的数据类型为:intv3的数据类型为:byte
注意:i.(type) 只能在switch中使用
方法二:使用fmt中的格式化输出%T
func main() { v1 := "中国你好" v2 := 20 var v3 byte = 65 fmt.Printf("v1的数据类型为:%T\n", v1) fmt.Printf("v2的数据类型为:%T\n", v2) fmt.Printf("v2的数据类型为:%T\n", v3)}
输出:
v1的数据类型为:stringv2的数据类型为:intv2的数据类型为:uint8
说明:byte与uint8是同一类型
方法三:使用reflect反射中的TypeOf函数
func main() { v1 := "中国你好" v2 := 20 var v3 byte = 65 fmt.Printf("v1的数据类型为:%v\n", reflect.TypeOf(v1)) fmt.Printf("v2的数据类型为:%v\n", reflect.TypeOf(v2)) fmt.Printf("v3的数据类型为:%v\n", reflect.TypeOf(v3))}
输出:
v1的数据类型为:stringv2的数据类型为:intv2的数据类型为:uint8
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦