爱摸鱼的Demon
首页
前端知识
后端技术
工程实践
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

爱摸鱼的Demon

我的地盘,欢迎光临。
首页
前端知识
后端技术
工程实践
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • C#

  • Golang

    • Go

      • GO环境安装
      • Hello World GO版
      • GO变量、数据类型与方法
      • GO的基础语法
      • 并发安全与锁
      • channel(通道、管道)
      • 反射
      • 文件目录
      • Golang中的接口(Interface)
    • Gin

    • GORM

  • 后端技术
  • Golang
  • Go
DemonW-X
2025-09-29

反射

反射是指在程序运行期间对程序本身进行访问和修改的能力。正常情况程序在编译时,变量被转换为内存地址,变量名不会被编译器写入到可执行部分。在运行程序时,程序无法获取自身的信息。支持反射的语言可以在程序编译期将变量的反射信息(如字段名称、类型信息、结构体信息等)整合到可执行文件中,并给程序提供接口访问反射信息,这样就可以在程序运行期获取类型的反射信息,并且有能力修改它们。

golang中可以实现的功能:

1、反射可以在程序运行期间动态地获取变量的各种信息,如变量的类型、类别

2、若是结构体,通过反射可以获取结构体本身的信息,如结构体的字段、方法

3、通过反射,可以修改变量的值,可以调用关联的方法

golang中变量分为两部分:

·类型信息:预先定义好的元信息。

·值信息:程序运行过程中可动态变化的。

在golang的反射机制中,任何接口值都由一个具体类型和具体类型的值两部分组成。

golang中反射的相关功能由内置的reflect包提供,任意接口值在反射中都可以理解为由reflect.Type和reflect.Value两部分组成,并且提供了reflect.TypeOf和reflect.ValueOf两个重要函数来获取任意对象的Value和Type。

golang中关于类型划分为两个部分:类型(Type)和种类(Kind)

种类(Kind)就是指底层的类型,在反射中,当需要去区分指针、结构体等大品种的类型时,就会用到Kind。

reflect.TypeOf:获取任意值的类型对象

reflect.ValueOf:获取原始值方法

编辑 (opens new window)
channel(通道、管道)
文件目录

← channel(通道、管道) 文件目录→

最近更新
01
Gorm之事务
11-13
02
Gorm之关联进阶版
11-13
03
Gorm之根据外键关联表
11-13
更多文章>
Theme by Vdoing | Copyright © 2022-2025 爱摸鱼的Demon | 桂ICP备2024034950号 | 桂公网安备45142202000030
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式