Golang 中国

1 回复
xialeistudio
#1 xialeistudio • 3 小时前
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),此外需要使用指针

需要 登录 后方可回复, 如果你还没有账号你可以 注册 一个帐号。