Función reflect.Call() en Golang con ejemplos

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.Call() en Golang se usa para llamar a la función v con los argumentos de entrada. Para acceder a esta función, es necesario importar el paquete reflect en el programa.

Sintaxis:

func (v Value) Call(in []Value) []Value

Parámetros: Esta función toma los siguientes parámetros:

  • in : Este parámetro es del tipo []Valor.

Valor de retorno: esta función devuelve los resultados de salida como valores.

Los siguientes ejemplos ilustran el uso del método anterior en Golang:

Ejemplo 1:

// Golang program to illustrate
// reflect.Call() Function
    
package main
  
import "fmt"
import "reflect"
  
type T struct {}
  
func (t *T) Geeks() {
    fmt.Println("GeekforGeeks")
}
  
func main() {
    var t T
      
    // use of Call() method
    val := reflect.ValueOf(&t).MethodByName("Geeks").Call([]reflect.Value{})
      
    fmt.Println(val)
}        

Producción:

GeekforGeeks
[]

Ejemplo 2:

// Golang program to illustrate
// reflect.Call() Function
     
package main
   
import "fmt"
import "reflect"
   
type T struct {}
   
func (t *T) Geeks() {
    fmt.Println("GeekforGeeks")
}
  
func (t *T) Geeks1() {
    fmt.Println("Golang Package :")
    fmt.Println("reflect")
    fmt.Println("Call() Function")    
}
   
func main() {
    var t T
    var t1 T
    // use of Call() method
    reflect.ValueOf(&t).MethodByName("Geeks").Call([]reflect.Value{})
      
    reflect.ValueOf(&t1).MethodByName("Geeks1").Call([]reflect.Value{})
  
} 

Producción:

GeekforGeeks
Golang Package :
reflect
Call() Function

Publicación traducida automáticamente

Artículo escrito por SHUBHAMSINGH10 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *