Go语言学习之路(六)接口

文章目录

前言

很多语言都有接口的概念,但是go语言的接口可能在我们理解上有一点点小小的差异,但是实际展示效果是差不多的

开始学习

比较简单,直接上代码

// 接口里定义一个方法
type Animal interface{
	speak()
}
// 定义了一只狗
type Dog struct{
}
func (dog Dog) call() {
    fmt.Println("I am dog")
}
// 定义了一只猫
type Cat struct{
}
func (cat Cat) call() {
    fmt.Println("I am cat")
}
// 主方法调用
func main() {
    var animal Animal

    animal = new(Dog)
    animal.call()

    animal = new(Cat)
    animal.call()
}

看着是不是很像java中用接口去接受实现类创建的对象呢?

第二种就是类型输出

// 定义一个新接口
type Test interface{}
// 类型输出,直接调用当前方法,可以传入任意类型的值,即可将信息输出
func showmpType(q interface{}) {
	fmt.Printf("type:%T,value:%v\n", q, q)
}

实际上我感觉第一种方式用的多一些,第二种用的比较少,掌握了第一种类似多态的应该就可以了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值