首页 > 其他 > 详细

golang之反射

时间:2020-02-16 01:48:12      阅读:68      评论:0      收藏:0      [点我收藏+]

反射基本介绍

  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之反射

原文:https://www.cnblogs.com/xiangxiaolin/p/12315461.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!