El lenguaje Go proporciona una implementación de soporte incorporada de la reflexión en tiempo de ejecución y permite que un programa manipule objetos con tipos arbitrarios con la ayuda del paquete de reflexión. La función reflect.NumMethod() en Golang se usa para obtener la cantidad de métodos exportados en el conjunto de métodos del valor. Para acceder a esta función, es necesario importar el paquete reflect en el programa.
Sintaxis:
func (v Value) NumMethod() intParámetros: Esta función no acepta ningún parámetro.
Valor devuelto: esta función devuelve el número de métodos exportados en el conjunto de métodos del valor.
Los siguientes ejemplos ilustran el uso del método anterior en Golang:
Ejemplo 1:
// Golang program to illustrate // reflect.NumMethod() Function package main import ( "fmt" "reflect" ) type gfg struct { Prop string } func (f gfg) Geek1() string { return f.Prop } func (f gfg) Geek2() { } // Main function func main() { fooType := reflect.TypeOf(gfg{}) for i := 0; i < fooType.NumMethod(); i++ { method := fooType.Method(i) fmt.Println(method.Name) } }
Producción:
Geek1 Geek2
Ejemplo 2:
// Golang program to illustrate // reflect.NumMethod() Function package main import ( "log" "reflect" ) type Reindeer string func (r Reindeer) TakeOff() { log.Printf("%q lifts off.", r) } func (r Reindeer) Land() { log.Printf("%q gently lands.", r) } func (r Reindeer) ToggleNose() { if r != "rudolph" { panic("invalid reindeer operation") } log.Printf("%q nose changes state.", r) } func main() { r := Reindeer("rudolph") t := reflect.TypeOf(r) for i := 0; i < t.NumMethod(); i++ { m := t.Method(i) log.Printf("%s", m.Name) } }
Producción:
2009/11/10 23:00:00 Land 2009/11/10 23:00:00 TakeOff 2009/11/10 23:00:00 ToggleNose
Publicación traducida automáticamente
Artículo escrito por SHUBHAMSINGH10 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA