Rumah  >  Artikel  >  pembangunan bahagian belakang  >  golang反射用于什么场景

golang反射用于什么场景

angryTom
angryTomasal
2020-03-14 14:47:544268semak imbas

golang反射用于什么场景

golang反射用于什么场景

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

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

相关推荐:golang教程

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

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教程,欢迎学习。

Atas ialah kandungan terperinci golang反射用于什么场景. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:golang和go是什么关系Artikel seterusnya:golang如何创建目录