博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
golang接口的使用(练习一)
阅读量:7085 次
发布时间:2019-06-28

本文共 1301 字,大约阅读时间需要 4 分钟。

在go语言中,一个类只要实现了接口要求的所有函数,我们就说这个类实现了这个接口。

golang接口赋值实现方式一:将对象实例赋值给接口

package mainimport "fmt"//定义一个Animal接口,实现飞和跑的功能type Animal interface {    Fly()    Run()}//定义一个Bird类type Bird struct {}//通过类实现接口的函数功能func (bird Bird) Fly()   {    fmt.Println("the bird is flying!!!")}func (bird Bird) Run()  {    fmt.Println("the bird is running!!!")}func main()  {    // 声明一个Animal接口类型的变量    var animal Animal    //声明一个Bird类型的变量,并将其置0    //new()函数是一个用来分配内存的内建函数,它不初始化内存,只将其置0。    bird := new(Bird)    //把bird对象赋值给animal接口    animal = bird    //调用接口中的函数功能    animal.Fly()    animal.Run()}

golang接口赋值实现方式二:将接口赋值给接口

package mainimport "fmt"//定义一个Animal接口,实现飞和跑的功能type Animal interface {    Fly()    Run()}type Animal2 interface {    Fly()}//定义一个Bird类type Bird struct {}//通过类实现接口的函数功能func (bird Bird) Fly()   {    fmt.Println("the bird is flying!!!")}func (bird Bird) Run()  {    fmt.Println("the bird is running!!!")}func main()  {    // 声明一个Animal接口类型的变量    var animal Animal    var animal2 Animal2    //声明一个Bird类型的变量,并将其置0    //new()函数是一个用来分配内存的内建函数,它不初始化内存,只将其置0。    bird := new(Bird)    //把bird对象赋值给animal接口    animal = bird    //将animal接口赋值给animal2,注意函数功能包含关系,包含方法多的接口可以赋值给方法少的接口,反之,则不行。    animal2 = animal    //调用接口中的函数功能    animal.Fly()    animal.Run()    animal2.Fly()}

转载于:https://blog.51cto.com/huwho/2307623

你可能感兴趣的文章
缓存一致性协议
查看>>
RANSAC和Flitline
查看>>
JVM Input Arguments Lookup (JMX)(转)
查看>>
我持续推动Rust语言支持Windows XP系统
查看>>
DNS缓存
查看>>
AngularJS in Action读书笔记2——view和controller的那些事儿
查看>>
使用Android studio下载github上的工程及问题解决
查看>>
Http状态码说明
查看>>
初识Python
查看>>
浏览器缓存相关http头
查看>>
php分享(三十六)mysql中关联表更新
查看>>
如何将 DVD 转成 ISO
查看>>
HDU 5671 Matrix 水题
查看>>
[PWA] 3. Devtool
查看>>
Sql Server优化之索引提示----我们为什么需要查询提示,Sql Server默认情况下优化策略选择的不足...
查看>>
Code First开发系列之管理数据库创建,填充种子数据以及LINQ操作详解
查看>>
Autofac.Integration.Owin
查看>>
Codeforces Round #272 (Div. 2) D. Dreamoon and Sets 构造
查看>>
[转] GIS二次开发(C#+AE)
查看>>
请求(Request)的参数(Parameter)里包含特殊字符(#等)的正确处理方式
查看>>