iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > GO >Golang动态调用方法是什么
  • 609
分享到

Golang动态调用方法是什么

2023-06-22 06:06:16 609人浏览 薄情痞子
摘要

golang动态调用方法是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。main.Gopackage main import 

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动态调用方法是什么

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网GO频道,感谢您对编程网的支持。

您可能感兴趣的文档:

--结束END--

本文标题: Golang动态调用方法是什么

本文链接: https://www.lsjlt.com/news/302797.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作