Golang支持使用反射机制来动态访问struct属性,可以使用reflect包中的ValueOf函数来获取struct的反射值,然后使用FieldByName函数来获取struct中指定字段的反射值,最后使用Interface函数来获取字段的值。

示例代码:

package main

import (

"fmt"

"reflect"

)

type User struct {

Name string

Age int

}

func main() {

u := User{

Name: "John",

Age: 20,

}

// 获取User的反射值

uVal := reflect.ValueOf(u)

// 获取Name字段的反射值

nameVal := uVal.FieldByName("Name")

// 获取Name字段的值

name := nameVal.Interface().(string)

fmt.Println(name) // John

}