iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > GO >如何通过字符串变量调用方法?
  • 436
分享到

如何通过字符串变量调用方法?

2024-04-05 00:04:10 436人浏览 泡泡鱼
摘要

知识点掌握了,还需要不断练习才能熟练运用。下面编程网给大家带来一个golang开发实战,手把手教大家学习《如何通过字符串变量调用方法?》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回

知识点掌握了,还需要不断练习才能熟练运用。下面编程网给大家带来一个golang开发实战,手把手教大家学习《如何通过字符串变量调用方法?》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!

问题内容

我以前见过这个问题。但我不明白答案。

如何从字符串值调用方法。所以如果

我有很多方法

func (c *something) whatevername(whatever map[string]interface{}) {
}

每个参数类型相同。没有返回等...从字面上看,唯一的区别在于方法名称。

我想做这样的事情,但我无法让它发挥作用。我只想从“var mymethod string”的值调用正确的方法:

func (c something) foo(m map[string]interface{}) {
 fmt.Println("foo..")
 //do something with m
}

func main() {
 myMethod := "foo"
 message := make(map[string]interface{})
 //fill message with stuff...
 c := something{} //this is just a hypothetical example...
 vt := reflect.ValueOf(c)
 vm := vt.MethodByName(myMethod)    
 vm.Call([]reflect.Value{reflect.ValueOf(message)})
}

我显然不明白反射是如何工作的。


解决方案


如果您导出该方法,您的示例将有效。将 foo 更改为 foo

type something struct{}

func (c something) foo(m map[string]interface{}) {
    fmt.println("foo..")
    //do something with m
}

func main() {
    mymethod := "foo"
    message := make(map[string]interface{})
    //fill message with stuff...
    c := something{} //this is just a hypothetical example...
    vt := reflect.valueof(c)
    vm := vt.methodbyname(mymethod)
    vm.call([]reflect.value{reflect.valueof(message)})
}

这将输出(在 Go Playground 上尝试):

Foo..

另请注意,在此示例中 foo() 具有值接收器:c something。如果方法有指针接收者如c *something,则需要有一个指针值来启动,因为有指针接收者的方法不在非指针类型的method set中。

查看相关:Call functions with special prefix/suffix

今天关于《如何通过字符串变量调用方法?》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注编程网公众号!

您可能感兴趣的文档:

--结束END--

本文标题: 如何通过字符串变量调用方法?

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

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

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

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

下载Word文档
猜你喜欢
  • 如何通过字符串变量调用方法?
    知识点掌握了,还需要不断练习才能熟练运用。下面编程网给大家带来一个Golang开发实战,手把手教大家学习《如何通过字符串变量调用方法?》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回...
    99+
    2024-04-05
  • php如何通过变量调用方法
    这篇“php如何通过变量调用方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php如何通过变量调用方法”文章吧。1.使用可...
    99+
    2023-07-06
  • 如何从变量中的字符串调用函数?
    你在学习Golang相关的知识吗?本文《如何从变量中的字符串调用函数?》,主要介绍的内容就涉及到,如果你想提升自己的开发能力,就不要错过这篇文章,大家要知道编程理论基础和实战操作都是不可或缺的哦!问...
    99+
    2024-04-05
  • Python3通过字符串访问和修改局部变量的方法实例
    目录技术背景读取和修改局部变量读取和修改全局变量读取和修改成员变量总结概要参考链接技术背景 在Python中定义一个函数时,就会把变量空间划分为全局变量(global)与局部变量(l...
    99+
    2024-04-02
  • php字符串变量如何替换
    这篇“php字符串变量如何替换”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“php字符串变量如何替换”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接下来就让我们进入主题吧。...
    99+
    2023-06-06
  • json字符串如何转为php变量
    这篇文章主要为大家展示了“json字符串如何转为php变量”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“json字符串如何转为php变量”这篇文章吧。在php中,可以利用json_decode(...
    99+
    2023-06-25
  • Java 常量字符串过长的解决方法
    问题出现 在IDEA中,字符串长度超过65535,进行打印,IDEA会提示java: 常量字符串过长。使用javac 进行编译也会有类似的提示 解决办法 使用StringBuil...
    99+
    2024-04-02
  • js中如何使用tostring方法转变成字符串
    这篇文章主要介绍js中如何使用tostring方法转变成字符串,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!首先我们来看一个小栗子。<script> var a...
    99+
    2024-04-02
  • python如何在字符串中插入变量
    共三个用法,如下所示 使用字符串的format()函数,通过" 字{0}符{1}串".format(变量1,变量2,...)的方式,所有变量都作为format()函数的参数,在字符串中用“{}”来接收...
    99+
    2023-09-29
    python 开发语言
  • c语言字符串变量如何定义
    C语言中,字符串变量可以通过以下方式定义:1. 使用字符数组(char array):可以使用字符数组来存储字符串。字符数组以nul...
    99+
    2023-09-08
    c语言
  • javascript如何把变量转换为字符串
    这篇文章主要讲解了“javascript如何把变量转换为字符串”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript如何把变量转换为字符串”吧!...
    99+
    2024-04-02
  • golang如何检测变量是否为字符串
    本篇内容主要讲解“golang如何检测变量是否为字符串”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“golang如何检测变量是否为字符串”吧!检测变量是否为字符串的方法:1、利用“%T”格式化标...
    99+
    2023-07-04
  • c语言中字符串变量如何定义
    在C语言中,字符串变量可以通过以下几种方式定义:1. 使用字符数组来定义字符串变量:```cchar str[100]; // 定义...
    99+
    2023-09-29
    c语言
  • PHP中如何通过strtotime()用字符串来创建日期
    这篇文章主要介绍PHP中如何通过strtotime()用字符串来创建日期,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!通过 PHP strtotime() 用字符串来创建日期PHP ...
    99+
    2024-04-02
  • Java中常量字符串过长如何解决
    今天就跟大家聊聊有关Java中常量字符串过长如何解决,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。解决办法使用StringBuilderStringBuilder sb&n...
    99+
    2023-06-14
  • FeignClient如何通过配置变量调用配置文件url
    目录通过配置变量调用配置文件url调用指定的动态URL1 创建demo1服务2 创建demo2服务测试通过配置变量调用配置文件url 1.application.yml 配置文件配置...
    99+
    2024-04-02
  • 如何通过引用传递变量?
    问题内容 我编写这个类是为了测试: class PassByReference: def __init__(self): self.variable = 'Or...
    99+
    2024-02-09
    作用域
  • 如何通过递归方法实现用json-diff渲染json字符串对比结果
    目录前言分析json-diff的结构用递归方法拼接json字符串字符串修改非数组对象修改数组对象修改总结前言 上一篇,对比了js-diff和json-diff,发现js-diff对比...
    99+
    2022-12-08
    json-diff渲染json字符串 json diff
  • 通过MethodInfo调用方法
    要通过MethodInfo调用方法,首先需要获取MethodInfo实例,然后使用Invoke方法来调用该方法。以下是一个示例代码:...
    99+
    2023-09-27
    MethodInfo
  • PHP如何将字符串解析成多个变量
    这篇文章将为大家详细讲解有关PHP如何将字符串解析成多个变量,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。PHP 解析字符串为多个变量 简介 在 PHP 中,将字符串解析为多个变量是一种常见需求。这有助于...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作