iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Go语言如何判断结构体是否存在某方法
  • 750
分享到

Go语言如何判断结构体是否存在某方法

2023-07-05 03:07:37 750人浏览 薄情痞子
摘要

这篇文章主要介绍了Go语言如何判断结构体是否存在某方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Go语言如何判断结构体是否存在某方法文章都会有所收获,下面我们一起来看看吧。go 有时需要判断某个结构体是不是

这篇文章主要介绍了Go语言如何判断结构体是否存在某方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Go语言如何判断结构体是否存在某方法文章都会有所收获,下面我们一起来看看吧。

go 有时需要判断某个结构体是不是有某个方法,但是可能突然就一脸茫然,go 也可以像 PHP 那样判断

是的,虽然 go 没有提供现成的方法,但是可以用已有的逻辑来封装实现。

目前能用的方式有两种,一种是知道完整的方法可以用接口断言方式判断,第二种就是用反射来完成判断。

准备需要判断的结构体:

type  RefData  struct  {}func  (this  *RefData)  Show(data  any,  name  string)  string  {  data2  :=  data.(string)  +  "==="  +  name  return  data2}

接口断言判断:

refDataExists := falsevar refDataOb any = &RefData{}if _, ok := refDataOb.(interface {    Show(any, string) string}); ok {    refDataExists = true}

反射判断:

import(  "reflect")// 判断结构体方法是否存在func MethodExists(in any, method string) bool {    if method == "" {        return false    }    p := reflect.TypeOf(in)    if p.Kind() == reflect.Pointer {        p = p.Elem()    }    // 不是结构体时    if p.Kind() != reflect.Struct {        return false    }    object := reflect.ValueOf(in)    // 获取到方法    newMethod := object.MethodByName(method)    if !newMethod.IsValid() {        return false    }    return true}// 使用refDataExists := MethodExists(&RefData{},  "Show")

关于“Go语言如何判断结构体是否存在某方法”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Go语言如何判断结构体是否存在某方法”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: Go语言如何判断结构体是否存在某方法

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

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

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

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

下载Word文档
猜你喜欢
  • Go语言如何判断结构体是否存在某方法
    这篇文章主要介绍了Go语言如何判断结构体是否存在某方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Go语言如何判断结构体是否存在某方法文章都会有所收获,下面我们一起来看看吧。go 有时需要判断某个结构体是不是...
    99+
    2023-07-05
  • Go语言怎么判断结构体是否存在某方法?两种方式介绍
    Go语言怎么判断结构体是否存在某方法?下面本篇文章给大家介绍一下Golang判断结构体是否存在某方法的两种方式(附代码示例),希望对大家有所帮助!go 有时需要判断某个结构体是不是有某个方法,但是可能突然就一脸茫然,go 也可以像 php ...
    99+
    2023-05-14
    Golang go语言
  • Golang怎么判断结构体是否存在某方法
    这篇“Golang怎么判断结构体是否存在某方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Golang怎么判断结构体是否存...
    99+
    2023-07-04
  • Golang判断结构体是否存在某方法的两种方式(附代码示例)
    本篇文章带大家学习一下Golang,聊聊Golang怎么判断结构体是不是有某个方法,希望对大家有所帮助。go 判断结构体是否有某个方法go 有时需要判断某个结构体是不是有某个方法,但是可能突然就一脸茫然,go 也可以像 php 那样判断是的...
    99+
    2023-05-14
    Golang
  • go语言如何判断一个文件是否存在
    这篇文章主要介绍“go语言如何判断一个文件是否存在”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“go语言如何判断一个文件是否存在”文章能帮助大家解决问题。在go语言中,判断一个文件是否存在,需要使用...
    99+
    2023-07-05
  • Go语言如何判断指定字符是否存在
    这篇文章主要讲解了“Go语言如何判断指定字符是否存在”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Go语言如何判断指定字符是否存在”吧!判断方法:1、使用index()函数判断,可以在字符串...
    99+
    2023-07-05
  • go语言中结构体方法如何定义
    本篇内容主要讲解“go语言中结构体方法如何定义”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“go语言中结构体方法如何定义”吧!go语言中结构体方法的定义方法:1、定义一个结构体,语法“type ...
    99+
    2023-07-05
  • php如何判断方法和属性是否存在
    本文操作环境:windows10系统、php 7、thinkpad t480电脑。php判断类里面的某个方法是否存在:bool method_exists ( mixed $object , string $method_name ) 检查...
    99+
    2019-10-23
    php 方法 属性
  • go语言中布隆过滤器低空间成本判断元素是否存在方式
    目录简介原理数据结构添加判断存在哈希函数布隆过滤器大小、哈希函数数量、误判率应用场景数据库黑名单实现数据结构初始化添加元素判断元素是否存在简介 布隆过滤器(BloomFilter)是...
    99+
    2022-11-11
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作