当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Golang reflect.Call()用法及代码示例


Go语言提供了运行时反射的内置支持实现,并允许程序借助反射包来操纵任意类型的对象。 Golang中的reflect.Call()函数用于使用输入参数in调用函数v。要访问此函数,需要在程序中导入反射包。

用法:
func (v Value) Call(in []Value) []Value

参数:此函数采用以下参数:

  • in:此参数是[] Value类型。

返回值:此函数将输出结果作为值返回。

以下示例说明了以上方法在Golang中的用法:



范例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) 
}        

输出:

GeekforGeeks
[]

范例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{}) 
  
} 

输出:

GeekforGeeks
Golang Package:
reflect
Call() Function



相关用法


注:本文由纯净天空筛选整理自SHUBHAMSINGH10大神的英文原创作品 reflect.Call() Function in Golang with Examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。