golang reflect简单使用
来源:互联网 发布:中国银联 工作知乎 编辑:程序博客网 时间:2024/05/17 22:51
package mainimport ("fmt""reflect")type MyStruct struct {name string}func (this *MyStruct) GetName() string {return this.name}func (this *MyStruct) SayName(name string) (string, int) {//fmt.Println(name)return "hello", 2}func main() {s := "this is string"fmt.Println(reflect.TypeOf(s))fmt.Println(reflect.ValueOf(s))fmt.Println("-------------------")var x float64 = 3.4fmt.Println(reflect.TypeOf(x))fmt.Println(reflect.ValueOf(x))fmt.Println("-------------------")a := new(MyStruct)a.name = "fjgui"fmt.Println(reflect.ValueOf(a))fmt.Println(reflect.TypeOf(a))fmt.Println(reflect.TypeOf(a).NumMethod())b := reflect.ValueOf(a).MethodByName("GetName").Call([]reflect.Value{})fmt.Println(b[0])fmt.Println("-------------------")args := []reflect.Value{reflect.ValueOf("liming")}result := reflect.ValueOf(a).MethodByName("SayName").Call(args)if len(result) > 0 {for _, resp := range result {if resp.Interface() != nil {fmt.Println(resp.Interface())}}}}
C:/Go/bin/go.exe build -i [F:/Go/src/reflect]
成功: 进程退出代码 0.
F:/Go/src/reflect/reflect.exe [F:/Go/src/reflect]
string
this is string
-------------------
float64
3.4
-------------------
&{fjgui}
*main.MyStruct
2
fjgui
-------------------
hello
2
成功: 进程退出代码 0.
0 0
- golang reflect简单使用
- golang 中 reflect 简单用法
- Golang 使用reflect 更改struct内容
- Golang:使用reflect探究struct成员方法接收者指针
- golang 反射(reflect)
- reflect与Properties的简单使用
- Android初级——Reflect简单使用
- [golang]golang reflect详细用法整理
- Golang之反射reflect包
- Golang简单的template使用
- NSQ的golang客户端简单使用
- 七牛Golang SDK简单使用教程
- Golang 使用 C语言 简单操作
- golang faygo 框架模板的简单使用
- java reflect简单介绍
- 使用reflect proxy
- 【反射】Reflect的使用
- reflect 库使用小结
- Mitaka版OpenStack中调用ceilometerclient创建alarm的问题
- PAT乙级1012 数字分类
- C++简单加解密
- 正则表达式基础学习
- Java抽象类与接口的区别
- golang reflect简单使用
- HTTP中Get与Post的区别
- java集合架构____Arraylist
- Java 创建对象的几种方式
- spring中用joinpoint来访问目标方法的参数
- 《C++Primer》笔记 第二章2.3 指针和引用
- IntelliJ配置mybatis-config.xml
- ural1028 Stars (树状数组)
- Linux架构