首頁 >後端開發 >Golang >如何使用反射按名稱呼叫 Go Struct 方法?

如何使用反射按名稱呼叫 Go Struct 方法?

Linda Hamilton
Linda Hamilton原創
2024-12-24 05:30:141052瀏覽

How Can I Call a Go Struct Method by Its Name Using Reflection?

在 Go 中按名稱呼叫結構體方法

查詢涉及透過指定名稱來呼叫 Go 結構體上的方法。與提供的 MethodByName() 函數不同,OP 設想了一種更直接的方法。

實現請求

要實現此目的,請使用以下步驟:

  1. 取得結構體值:使用reflect.ValueOf取得結構體指標的值。
  2. 以名稱找出方法:使用 MethodByName() 在結構體值中找出所需的方法。
  3. 呼叫方法: 使用 Call() 呼叫發現的方法,並在此傳遞一個空的 Reflect.Value參數片段

範例實作:

package main

import "fmt"
import "reflect"

type MyStruct struct {}

func (p *MyStruct) MyMethod() {
    fmt.Println("My statement")
}

func main() {
    var s MyStruct
    reflect.ValueOf(&s).MethodByName("MyMethod").Call(nil)
}

輸出:

My statement

注意:

注意:

以上是如何使用反射按名稱呼叫 Go Struct 方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn