IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Golang中对interface{}做type assertion和type switch

    mckee发表于 2015-12-27 22:09:48
    love 0

    interface{}是一个通用类型,可以储存任意类型的值。如下方法来获取值的实际类型:
    如果你比较确定类型可以使用type assertion:

    var num interface{} = 100
    if val,ok := num.(int); ok {
        fmt.Println(val)
    }

    如果你不确定interface{}的具体类型,使用type switch:
    var str interface{} = "abc"
    
    switch v := str.(type) {
    case string:
    	fmt.Println(v)
    case int32, int64:
    	fmt.Println(v)
    default:
    	fmt.Println("unknown")
    }



沪ICP备19023445号-2号
友情链接