golang 中 reflect 简单用法
来源:互联网 发布:电商软件营销方案 编辑:程序博客网 时间:2024/04/30 19:21
package main
import (
"fmt"
"reflect"
)
type Person struct {
Name string
Age int
}
func (p Person) GetName() string {
return p.Name
}
func (p Person) SetName(s string) {
p.Name = s
}
func main() {
a := &Person{"Name", 1}
t := reflect.TypeOf(*a) //必须取值,否则类型为空
k := v.Type()
for i := 0; i < v.NumField(); i++ {
key := k.Field(i)
val := v.Field(i)
fmt.Println(key.Name, val.Type(), val.Interface())
key := k.Method(i)
val := v.Method(i)
fmt.Println(key.Name, val.Type(), val.Interface())
}
v.FieldByName("Name").Set(reflect.ValueOf("Name"))
fmt.Println(a.Name)
name := v.MethodByName("GetName").Call([]reflect.Value{})
fmt.Println(name)
}
import (
"fmt"
"reflect"
)
type Person struct {
Name string
Age int
}
func (p Person) GetName() string {
return p.Name
}
func (p Person) SetName(s string) {
p.Name = s
}
func main() {
a := &Person{"Name", 1}
t := reflect.TypeOf(*a) //必须取值,否则类型为空
fmt.Println(t.Name())
k := v.Type()
for i := 0; i < v.NumField(); i++ {
key := k.Field(i)
val := v.Field(i)
fmt.Println(key.Name, val.Type(), val.Interface())
}
key := k.Method(i)
val := v.Method(i)
fmt.Println(key.Name, val.Type(), val.Interface())
}
v.FieldByName("Name").Set(reflect.ValueOf("Name"))
fmt.Println(a.Name)
name := v.MethodByName("GetName").Call([]reflect.Value{})
fmt.Println(name)
}
0 0
- golang 中 reflect 简单用法
- golang reflect简单使用
- [golang]golang reflect详细用法整理
- golang 中fmt用法
- golang 中fmt用法
- golang 反射(reflect)
- golang中bytes包用法
- golang 中unicode包用法
- golang 中regexp包用法
- golang 中strconv包用法
- golang中strings包用法
- golang中time包用法
- golang中sort包用法
- golang中os包用法
- golang中一些基础用法
- golang中image包用法
- golang中net包用法
- golang中time包用法
- Android仿QQ邮箱下拉刷新动画(三个小球围绕中心转动)
- Golang 通关初级(1)
- 面试题:“你能不能谈谈,java GC是在什么时候,对什么东西,做了什么事情?”
- GibbsLDA utils.h分析
- 关闭TV的效果
- golang 中 reflect 简单用法
- 使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)
- github操作分享
- 浏览器调试教程-chrome
- JDK多版本下如何设置jdk 1.8为默认jdk
- Android permission 访问权限大全
- NSInvocation
- 从今天开始学习嵌入式linux 加油!
- eclipse.ini相关配置