萌新在学习反射的时候碰到一个问题,还请大神指点

共 1 个回复


xialeistudio

package main

import (
    "reflect"
    "fmt"
)

type T struct {
    A int
    B string
}

func main() {
    t := T{23, "哈哈"}
    PrintAny(&t)
}

func PrintAny(o interface{}) {
    elemType := reflect.TypeOf(o).Elem()
    elemValue := reflect.ValueOf(o).Elem()
    for i := 0; i < elemType.NumField(); i++ {
        fmt.Println(elemValue.Field(i).Interface())
    }
}

需要区分类型(typeof)和值(valueof),此外需要使用指针

# 0