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
點擊查看更多內(nèi)容
為 TA 點贊
評論
評論
共同學(xué)習(xí),寫下你的評論
評論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦