Skip to content
Related Articles
Get the best out of our app
GeeksforGeeks App
Open App
geeksforgeeks
Browser
Continue

Related Articles

reflect.MethodByName() Function in Golang with Examples

Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article

Go language provides inbuilt support implementation of run-time reflection and allowing a program to manipulate objects with arbitrary types with the help of reflect package. The reflect.MethodByName() Function in Golang is used to get function value corresponding to the method of v with the given name. To access this function, one needs to imports the reflect package in the program.

Syntax:

func (v Value) MethodByName(name string) Value

Parameters: This function does not accept any parameter.

Return Value: This function returns a function value corresponding to the method of v with the given name.

Below examples illustrate the use of the above method in Golang:

Example 1:




// Golang program to illustrate
// reflect.MethodByName() Function
     
package main
     
import (
    "fmt"
    "reflect"
)
   
// Main function
type T struct {}
  
func (t *T) GFG() {
    fmt.Println("GeeksForGeeks")
}
  
func main() {
    var t T
    reflect.ValueOf(&t).MethodByName("GFG").Call([]reflect.Value{})
}

Output:

GeeksForGeeks

Example 2:




// Golang program to illustrate
// reflect.MethodByName() Function
     
package main
     
import (
    "fmt"
    "reflect"
)
   
// Main function
  
type YourT2 struct {}
func (y YourT2) MethodFoo(i int, oo string) {
    fmt.Println(i)
    fmt.Println(oo)
}
  
func Invoke(any interface{}, name string, args... interface{}) {
    inputs := make([]reflect.Value, len(args))
    for i, _ := range args {
        inputs[i] = reflect.ValueOf(args[i])
    }
    reflect.ValueOf(any).MethodByName(name).Call(inputs)
}
  
func main() {
     Invoke(YourT2{}, "MethodFoo", 10, "Geekforgeeks")
}

Output:

10
Geekforgeeks

My Personal Notes arrow_drop_up
Last Updated : 03 May, 2020
Like Article
Save Article
Similar Reads