package main
import (
"fmt"
"reflect"
)
type Cal struct {
Num1 int
Num2 int
}
func (s Cal) GetSub(name string) {
res := s.Num1 - s.Num2
fmt.Printf("%v 完成了减法运算, %v - %v = %v \n", name, s.Num1, s.Num2, res)
}
func TestCal(a interface{}) {
rVal := reflect.ValueOf(a)
kd := rVal.Kind()
if kd != reflect.Struct {
fmt.Println("expect struct.")
return
}
num := rVal.NumField()
fmt.Printf("结构体有 %d 个字段。\n", num)
for i := 0; i < num; i++ {
fmt.Printf("Feild %d : %v \n", i, rVal.Feild(i))
}
numOfMethod := rVal.NumMethod
fmt.Printf("结构体de方法有 %d 个字段。\n", numOfMethod)
var params []reflect.Value
params = append(params, reflect.ValueOf("Tom"))
rVal.Method(0).Call(params)
}
func main() {
var a Cal = Cal{
Num1 : 8,
Num2 : 3,
}
TestCal(a)
}
显示 rVal.Feild(i) 没有内容,为什么呀
你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答
本次提问扣除的有问必答次数,已经为您补发到账户,我们后续会持续优化,扩大我们的服务范围,为您带来更好地服务。
点赞