Golang 中类型判断

  • golang的语言中提供了断言的功能。golang中的所有程序都实现了interface{}的接口,这意味着,所有的类型如string,int,int64甚至是自定义的struct类型都就此拥有了interface{}的接口,这种做法和java中的Object类型比较类似。那么在一个数据通过func funcName(interface{})的方式传进来的时候,也就意味着这个参数被自动的转为interface{}的类型。
var t interface{}
t = functionOfSomeType()
switch t := t.(type) {
default:
    fmt.Printf("unexpected type %T", t)       // %T prints whatever type t has
case bool:
    fmt.Printf("boolean %t\n", t)             // t has type bool
case int:
    fmt.Printf("integer %d\n", t)             // t has type int
case *bool:
    fmt.Printf("pointer to boolean %t\n", *t) // t has type *bool
case *int:
    fmt.Printf("pointer to integer %d\n", *t) // t has type *int
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • golang的变量类型分为两类:基本数据类型 、 派生数据类型 基本数据类型包括布尔类型、字符串型、数字类型(整型...
    程序小白菜阅读 1,638评论 0 0
  • 参考:the-way-to-go_ZH_CN[https://github.com/unknwon/the-way...
    Mr_Michael阅读 3,199评论 0 0
  • 在本节之后,我们将正式学习 golang 语言基础。本节,我们将介绍 “golang 数据类型”,如果你还没阅读过...
    极客开发者阅读 2,463评论 0 1
  • 官方参考 https://golang.org/ref/spec#Types 其中类型有: Method sets...
    linanwx阅读 4,680评论 0 0
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 12,723评论 28 53