package main
import(
"fmt"
"reflect"
)
func reflectTest01(n interface{}){
rtype := reflect.TypeOf(n)
fmt.Println("rtype:",rtype)
rValue := reflect.ValueOf(n)
fmt.Println("rValue:",rValue)
}
func reflectTest02(n interface{}){
rtype := reflect.TypeOf(n)
fmt.Println("rtype:",rtype)
rValue := reflect.ValueOf(n)
fmt.Println("rValue:",rValue)
fmt.Println(rtype.Kind()," ",rValue.Kind()," ",rValue.Type())
iv := rValue.Interface()
stu ,ok := iv.(student)
if ok {
fmt.Println(stu.name,stu.age)
}
}
type student struct {
name string
age int
}
func main(){
//var num int = 100
//reflectTest01(num)
var stud = student{
name:"tome",
age : 23,
}
reflectTest02(stud)
}
golang反射机制练习01
最新推荐文章于 2023-07-18 11:12:30 发布