golang反射用于什么场景


本文摘自php中文网,作者angryTom,侵删。

golang反射用于什么场景

1、golang中反射最常见的使用场景是做对象的序列化(serialization,有时候也叫Marshal & Unmarshal)。

例如,Go语言标准库的encoding/json、encoding/xml、encoding/gob、encoding/binary等包就大量依赖于反射功能来实现。

相关推荐:golang教程

大多数时候,Go中的变量,类型和函数非常简单直接。当需要一个类型、变量或者是函数时,可以直接定义它们:

1

2

3

4

5

6

7

8

9

10

type Foo struct {

 A int

 B string

}

  

var x Foo

  

func DoSomething(f Foo) {

 fmt.Println(f.A, f.B)

}

2、但是有时你希望在运行时使用变量的在编写程序时还不存在的信息。比如你正在尝试将文件或网络请求中的数据映射到变量中。或者你想构建一个适用于不同类型的工具。

在这种情况下,你需要使用反射。反射使您能够在运行时检查类型。它还允许您在运行时检查,修改和创建变量,函数和结构体。

Go中的反射是基于三个概念构建的:

类型,种类和值(Types Kinds Values)。

PHP中文网,大量编程教程和thinkphp教程,欢迎学习。

以上就是golang反射用于什么场景的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

手撸golang 创建型设计模式 原型模式

【go从学会到学废】(零) golang简介

golang zip中文乱码怎么解决

protoc 插件编写之一 (protoc 插件的原理)

golang判断数组是否为空的方法

go module 12

golang中.a文件是什么

手撸golang 仿spring ioc/aop 之9 扫码4

klook分享go应用秘籍:服务千万级全球用户的4点心得

golang浮点数精度丢失问题扩展包怎么解决

更多相关阅读请进入《golang》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...