继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Go 语言中数据类型的判断

ajax入门学习视频
关注TA
已关注
手记 266
粉丝 80
获赞 597

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

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP