go 判断类是否实现了指定接口

在go 语言编程中,有时候我们想知道某个结构体(即有些人称之为类)是否实现了某个接口类型,那么如何去做呢,根据我查找的资料得知处理如下:

type IFace iterface {

         Eat() string

}

type Bird struct {

    Eyes string

   Color int

}

要判断Bird 是否实现了接口 IFace 直接

var _  IFace =new(Bird)  或者 var _ IFace = (*Bird)(nil)

解析:这个其实就是变量定义,您仔细看,我们平时定义变量时候  是否是 var  变量名  类型 = 赋值,上面中的 _ 其实就是舍去变量不要,因为go 中规定只要定义了的变量都必须要有使用的地方,但是我们的目的是为了判断类型是否实现了接口,不必使用到变量,因此就是用了 _ 符号舍去了。=号就带变了赋值,其实就是具体类型转换成接口类型,假如实现了接口类型,编译就可以通过,没有现实编译就会出错,就是根据这个原理来实现的。新手们是否豁然开朗。至于第二种写法与第一种的区别就是,第二种不需要分配内存就达到目的,而第一种是需要分配内存的。哈哈哈学到了吗?所以说 基本功一定要打好,否则很多东西看是奇怪,其实并没有那么复杂。好啦就这样了

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值