判断结构体是否实现了某个接口

package mainimport ("fmt""reflect"
)type Dark interface {Run(string)Speak(string) string
}
type bird struct {
}
type chick struct {
}func (c *chick) Run(msg string) {fmt.Printf(msg)
}func (c *chick) Speak() string {return ""
}func (b *bird) Run(msg string) {fmt.Print(msg)
}
func (b *bird) Speak(string) string {return ""
}var (//判断结构体bird是否实现了Dark接口_ Dark = (*bird)(nil) //把nil转化成*bird类型 赋值后即丢弃_ Dark = (*chick)(nil)//没有实现所有方法,所有编译报错
)func main() {var bird Dark = (*bird)(nil)var chick Dark = (*chick)(nil)fmt.Print(reflect.TypeOf(bird), reflect.TypeOf(chick))
}

golang判断结构体是否实现了某个接口相关推荐

  1. golang判断结构体为空_如何在Golang中检查结构是否为空?

    golang判断结构体为空 The size of an empty structure is zero in Golang. Here, empty structure means, there i ...

  2. golang修改结构体中的切片值

    golang修改结构体中的切片值,直接传结构体地址就可以 package mainimport "fmt"type rspInfo struct {KeyWords string ...

  3. Golang 入门 : 结构体(struct)

    Go 通过类型别名(alias types)和结构体的形式支持用户自定义类型,或者叫定制类型.试图表示一个现实世界中的实体. 结构体由一系列命名的元素组成,这些元素又被称为字段,每个字段都有一个名称和 ...

  4. golang:结构体定义

    结构体 Go 语言通过用自定义的方式形成新的类型,结构体是类型中带有成员的复合类型.Go 语言使用结构体和结构体成员来描述真实世界的实体和实体对应的各种属性. Go 语言中的类型可以被实例化,使用ne ...

  5. Golang 匿名结构体及测试代码编写技巧

    转自: https://www.jianshu.com/p/901820e17ffb 结构体基础 结构体 (struct) 将多个不同类型的字段集中组成一种复合类型,按声明时的字段顺序初始化. typ ...

  6. golang获取结构体中的tag_26. Go 语言中结构体的 Tag 用法

    大家好,我是明哥. 由于某些不可抗力,之前该专栏的所有内容都被删除了.因此之后的一段时间内,我会重新发布这些文章,先给已经看过的关注者提个醒. 本文原文:http://golang.iswbm.com ...

  7. Golang笔记——结构体

    结构体 看一个问题 使用现有技术解决 单独的定义变量解决 代码演示: 使用数组解决 现有技术解决的缺点分析 使用变量或者数组来解决养猫的问题,不利于数据的管理和维护.因为名字,年龄,颜色都是 属于一只 ...

  8. Go判断结构体类型是否为空(nil)

    目录 前言 正文 前言 使用任何编程语言都会遇到判空的问题,那么Golang如何判空呢?说真的,这种方式我还是很意外的. 正文 说到Golang的判空机制,确实刷新了我的认知,多少有些丑 ^_^,特别 ...

  9. golang(07) 结构体介绍

    原文链接 http://www.limerence2017.com/2019/09/11/golang12/ golang支持面向对象的设计,一般支持面向对象的语言都会有class的设计,但是gola ...

最新文章

  1. Vue.js 生命周期
  2. python添加lxml库_7分钟,建议看完这5个Python库对比丨web抓取
  3. Win32 API 窗口版本转换度分秒为小数
  4. 一起学nRF51xx 23 -  s130蓝牙API介绍
  5. 2行代码实现小程序分享到朋友圈功能
  6. 帝国cms调用栏目自定义字段(栏目简介)如何操作
  7. oracle exp导出成功终止,成功终止导出
  8. python列表逐行写入excel_python表格数据到excel-想问下python3怎么将列表数据逐行写入excel表格呢?...
  9. 力扣453.最小操作次数使数组元素相等
  10. 444 nginx_程序员安全规范:安全无小事,安全防范从nginx配置做起
  11. Leetcode 70.爬楼梯
  12. Kafka副本同步机制理解
  13. Home Assistant 家庭助理安装
  14. Redis---Redis三种常用数据结构
  15. Qt显示当前时间(年-月-日 时:分:秒 周几)
  16. Spark2.0机器学习系列之2:Logistic回归及Binary分类(二分问题)结果评估
  17. 利用Windows 计划任务定时将本地文件复制到共享文件夹
  18. 机器学习中常用的分类算法总结
  19. 树的基本概念和遍历规则 数据结构和算法 二叉树遍历(前序、中序、后序、层次、深度优先、广度优先遍历)
  20. 手把手教你用Python处理非平稳时间序列

热门文章

  1. SpringCloud微服务注册调用入门教程
  2. ajax请求头cookies中传递sid,跨域请求单点登录,登录成功,但是在controller中获取的cookie与浏览器中不一致,请大神指点一二。^_^...
  3. 用C语言编程计算下列表达式:s=1! 2...,2012年全国计算机等级二级C语言模拟试题及答案(3)...
  4. q learning简单理解_班级励志标语格言-生活其实很简单,过了今天就是明天
  5. 第一章 对象引论02
  6. 阿里云cloudmonitor服务导致CPU暴增的异常
  7. SpringMVC 传递相同名称的参数的最佳方法
  8. openfire过滤脏话插件,控制消息是否发送
  9. Remastersys制作自己的Linux发行版
  10. 省、省、省!!!企业如何搭建易用性网络