0
点赞
收藏
分享

微信扫一扫

GoLang之标准库reflect包

木匠0819 2022-04-08 阅读 45
golang

文章目录

GoLang之标准库reflect包

本文基于Windos系统上Go SDK 1.8进行讲解

1.变量内在机制

image-20220123213348411

2.反射介绍

image-20220124082511999

image-20220124082333703

image-20220123213612486

image-20220124082816585

3.Kind常量

image-20220123215304338

image-20220123215241679

4.TypeOf函数

image-20220124083111896

image-20220123213657732

image-20220124085810973

image-20220123214351616

5.ValueOf函数

image-20220124092723212

image-20220124092643892

6.Type接口

6.1Type接口

type Type interface {
	Align() int
	FieldAlign() int
	Method(int) Method
	MethodByName(string) (Method, bool)
	NumMethod() int
	Name() string
	PkgPath() string
	Size() uintptr
	String() string
	Kind() Kind
	Implements(u Type) bool
	AssignableTo(u Type) bool
	ConvertibleTo(u Type) bool
	Comparable() bool
	Bits() int
	ChanDir() ChanDir
	IsVariadic() bool
	Elem() Type
	Field(i int) StructField
	FieldByIndex(index []int) StructField
	FieldByName(name string) (StructField, bool)
	FieldByNameFunc(match func(string) bool) (StructField, bool)
	In(i int) Type
	Key() Type
	Len() int
	NumField() int
	NumIn() int
	NumOut() int
	Out(i int) Type
	common() *rtype
	uncommon() *uncommonType
}

image-20220124105432357

6.2Kind方法、Name方法

image-20220124094459351

image-20220124094649351

image-20220124085540468

image-20220124085848409

image-20220124084828577

image-20220124084933105

image-20220124085112495

image-20220124094726303

6.3NumMethod方法

image-20220124110746835

image-20220124123040105

6.4Method方法

image-20220124123438423

image-20220124142032893

6.5NumField方法

image-20220124110324878

6.6Filed方法

image-20220124111353246

image-20220124112323212

image-20220124113215043

image-20220124143922055

6.7FieldByName方法

image-20220124113945904

image-20220124113757294

image-20220124121901069

6.8FiledByIndex方法

image-20220124151607231

image-20220124151706747

7.Value结构体

7.1Value结构体

type Value struct {
	typ *rtype
	ptr unsafe.Pointer
	flag
}

image-20220124092759252

7.2IsNil方法、IsValid方法

image-20220124090037748

image-20220124090055332

image-20220124091309394

image-20220124091324934

7.3Int方法、float方法

image-20220124093634608

image-20220124093500185

image-20220124093605419

7.4SetInt方法

image-20220124102700683

image-20220124095231146

image-20220124095647027

image-20220124095720832

image-20220124102436281

image-20220124103150852

image-20220124103308367

7.5Elem方法

image-20220124094902172

image-20220124095003228

image-20220124103823194

image-20220124103922675

image-20220124104010507

image-20220124104043492

image-20220124104237136

7.6NumMethod方法

image-20220124105308358

image-20220124105051352

image-20220124123137412

7.7Method方法

image-20220124140615537

image-20220124110711896

image-20220124141154330

7.8Call方法

image-20220124145250907

image-20220124145440821

image-20220124145544382

7.9NumField方法

image-20220124111658385

image-20220124110219642

image-20220124110340089

7.10Filed方法

image-20220124111733309

image-20220124111150376

image-20220124111229488

7.11Interface方法

image-20220124142808049

image-20220124142735015

image-20220124142703991

7.12FieldByName方法

image-20220124114254323

image-20220124113819685

7.13FieldByIndex方法

image-20220124151351218

image-20220124151416486

8.StructField结构体

8.1StructField结构体

image-20220124112302810
image-20220124111548936

8.2Get方法

9.Method结构体

image-20220124140733446

举报

相关推荐

0 条评论