登录
首页 >  Golang >  Go问答

Golang 如何动态访问结构体属性?

来源:Golang技术栈

时间:2023-06-09 06:25:01 347浏览 收藏

有志者,事竟成!如果你在学习Golang,那么本文《Golang 如何动态访问结构体属性?》,就很适合你!文章讲解的知识点主要包括结构体、golang,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

问题内容

Golang 如何动态访问结构体属性?

正确答案

在 Go 中,可以使用反射来动态访问结构体的属性。下面是一个示例,展示如何使用反射动态访问结构体属性:

package main

import (
	"fmt"
	"reflect"
)

type Person struct {
	Name string
	Age  int
}

func main() {
	p := Person{Name: "John", Age: 30}

	// 使用反射获取结构体类型
	pType := reflect.TypeOf(p)

	// 使用反射获取结构体字段值
	nameField, _ := pType.FieldByName("Name")
	ageField, _ := pType.FieldByName("Age")

	nameValue := reflect.ValueOf(p).FieldByName("Name").String()
	ageValue := reflect.ValueOf(p).FieldByName("Age").Int()

	fmt.Printf("Name: %s, Age: %d\n", nameValue, ageValue)
	fmt.Printf("Name Field: %+v\n", nameField)
	fmt.Printf("Age Field: %+v\n", ageField)
}

终于介绍完啦!小伙伴们,这篇关于《Golang 如何动态访问结构体属性?》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>