當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。