关于golang:golang-经典案例总结

7次阅读

共计 543 个字符,预计需要花费 2 分钟才能阅读完成。

1. 反射之用字符串函数名调用函数

package main

import (
    "fmt"
    "reflect"
)

/**
通过反射获取它对应的函数,而后通过 call 来调用
 */
func main() {var animal = Animal{}
    val := reflect.ValueOf(&animal)
    f := val.MethodByName("Eat")
    f.Call([]reflect.Value{})

    // 传参 
    f3 := val.MethodByName("SetName")
    params := make([]reflect.Value,1)
    params[0] = reflect.ValueOf("旺财")
    f3.Call(params)

    f2 := val.MethodByName("GetName")
    f2.Call([]reflect.Value{})

}

type Animal struct {name string}

func (e *Animal) Eat() {fmt.Println("eat test")
}
func (e *Animal) SetName(name string)  {e.name = name}
func (e *Animal) GetName() string {fmt.Println("name",e.name)
    return e.name
}
正文完
 0