手记

Go 语言中数据类型的判断


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的数据类型为:string

v2的数据类型为:int

v3的数据类型为: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的数据类型为:string

v2的数据类型为:int

v2的数据类型为: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的数据类型为:string

v2的数据类型为:int

v2的数据类型为:uint8

©著作权归作者所有:来自51CTO博客作者thao888的原创作品,如需转载,请注明出处,否则将追究法律责任


0人推荐
随时随地看视频
慕课网APP