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

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

Linda Hamilton
發布: 2024-12-24 05:30:14
原創
944 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板