MST

星途 面试题库

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

在Go语言中,给定一个结构体实例,如何使用反射获取其所有字段的名称和类型,请写出具体代码示例。
34.1万 热度难度
编程语言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 := reflect.TypeOf(p)

    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)
    }
}