go语言获取变量类型的4种方式

在go语言中我们常常需要获取某个变量的类型,其他语言如python可以使用 type(x), javascript中可以使用 typeof x 获取变量类型, Go 语言中我们也可以通过一下4种方式获取变量的类型。

  1. 通过 fmt.Printf 的 %T 打印变量的类型;
Go 复制代码
var x float64 = 3.4
fmt.Printf("Type of x: %T\n", x)
  1. 通过反射获取类型 reflect.Typeof(变量) 、 reflect.ValueOf(变量).Kind() ;
Go 复制代码
var x float64 = 3.4
fmt.Println("Type of x:", reflect.TypeOf(x)) // float64

// ValueOf 获取数据类型
fmt.Printf("%s \n", reflect.ValueOf(x).Kind()) // float64
  1. 类型断言检测变量类型
Go 复制代码
   var i interface{} = "Hello"
    // 类型断言
    s, ok := i.(string)
    if ok {
        fmt.Println(s) 
    }
  1. 类型选择, 与类型推断类似,也是类型检查和转换的一种方式。
Go 复制代码
    var i interface{} = "Hello"

    // 类型选择
    switch v := i.(type) {
    case string:
        fmt.Println(v) // 
    case int:
        fmt.Println(v * 2)
    default:
        fmt.Println("Unknown type")
    }
相关推荐
且去填词9 小时前
深入理解 GMP 模型:Go 高并发的基石
开发语言·后端·学习·算法·面试·golang·go
a程序小傲10 小时前
京东Java面试被问:多活数据中心的流量调度和数据同步
java·开发语言·面试·职场和发展·golang·边缘计算
卜锦元12 小时前
EchoChat搭建自己的音视频会议系统01-准备工作
c++·golang·uni-app·node.js·音视频
钟离墨笺13 小时前
Go语言-->interfance{}赋值的陷阱
开发语言·后端·golang
小镇学者14 小时前
【python】python有必要像go或者nodejs那样做多版本切换吗?
开发语言·python·golang
梦想画家14 小时前
深度解析RuleGo框架:核心原理与插件机制实战
golang·规则引擎·rulego
且去填词16 小时前
Go 内存分配器(TCMalloc):栈与堆的分配策略
开发语言·后端·面试·golang
源代码•宸17 小时前
Golang原理剖析(Sync.Map)
数据结构·经验分享·后端·golang·sync.map·readmap·dirtymap
老蒋每日coding17 小时前
Go语言实现 Agent Demo
开发语言·后端·golang
老蒋每日coding18 小时前
Go语言面试题及答案总结(一)
面试·职场和发展·golang