亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Golang動態調用方法是什么

發布時間:2021-12-27 08:13:16 來源:億速云 閱讀:131 作者:柒染 欄目:開發技術

Golang動態調用方法是什么,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

main.go

package main
 
import (
 "lenu/call"
 "reflect"
)
 
 
type FuncCollection map[string]reflect.Value
 
func main() {
 _, _ = CallFunc("Hello", "執行Hello方法")
 _, _ = CallFunc("World", "執行World方法")
}
 
func CallFunc(tableName string, args ... interface{}) (result []reflect.Value, err error) {
 var router call.Routers
 FuncMap := make(FuncCollection, 0)
 rf := reflect.ValueOf(&router)
 rft := rf.Type()
 funcNum := rf.NumMethod()
 for i := 0; i < funcNum; i ++ {
  mName := rft.Method(i).Name
  FuncMap[mName] = rf.Method(i)
 }
 parameter := make([]reflect.Value, len(args))
 for k, arg := range args {
  parameter[k] = reflect.ValueOf(arg)
 }
 result = FuncMap[tableName].Call(parameter)
 return
}

package call:

router.go:

package call
 
type Routers struct {
}

hello.go

package call
 
import "log"
 
func (router *Routers) Hello(args ...interface{}) bool {
 log.Println(args[0])
 return true
}

world.go

package call
 
import "log"
 
func (router *Routers) World(args ...interface{}) bool {
 log.Println(args[0])
 return true
}

go run main.go會通過反射去調用Hello,World方法

Golang動態調用方法是什么

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

渭南市| 大厂| 古蔺县| 鄂托克前旗| 郸城县| 荣昌县| 道孚县| 开阳县| 垦利县| 翼城县| 灵寿县| 那坡县| 昌黎县| 雅江县| 长子县| 平潭县| 海原县| 郓城县| 元谋县| 砀山县| 博罗县| 南木林县| 白沙| 高清| 瑞安市| 勐海县| 洛浦县| 南宫市| 静海县| 翼城县| 明光市| 湘潭县| 青岛市| 抚松县| 彩票| 乃东县| 灵宝市| 彰武县| 西宁市| 福鼎市| 万山特区|