golang之反射
Posted xiangxiaolin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang之反射相关的知识,希望对你有一定的参考价值。
反射基本介绍
1)反射可以在运行时动态获取变量的各种信息,比如变量的类型(type),类别(kind)
2)如果是结构体变量,还可以获取到结构体本身的信息(包括结构体的字段,方法)
3)通过反射,可以修改变量的值,可以调用关联的方法
4)使用反射,需要 import ("reflect")
反射重要的函数和概念
1)reflect.TypeOf(变量名),获取变量的类型,返回reflect.Type类型
2)reflect.ValueOf(变量名),获取变量的值,返回reflect.Value类型,reflect.Value是一个结构体类型。通过reflect.Value,可以获取到关于该变量的很多信息
3)变量、interface{}和reflect.Value是可以相互转换的,这点在实际开发中,会经常使用到。
interface{} ——> reflect.Value:
rVal := reflect.ValueOf(b)
reflect.Value ——> interface{}:
iVal := rVal.Interface()
interface{} ——> 原来的变量(类型断言):
v := iVal.(Stu)
以上是关于golang之反射的主要内容,如果未能解决你的问题,请参考以下文章