MST

星途 面试题库

面试题:Go 反射中如何获取结构体字段信息

在Go语言中,给定一个结构体实例,使用反射机制如何获取其所有字段的名称和类型?请写出实现代码示例。
12.8万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import (
    "fmt"
    "reflect"
)

type Person struct {
    Name string
    Age  int
}

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

    valueOf := reflect.ValueOf(p)
    typeOf := valueOf.Type()

    for i := 0; i < valueOf.NumField(); i++ {
        fieldName := typeOf.Field(i).Name
        fieldType := typeOf.Field(i).Type.String()
        fmt.Printf("Field Name: %s, Field Type: %s\n", fieldName, fieldType)
    }
}