golang接口的使用(练习一)(代码片段)

author author     2023-01-10     609

关键词:

在go语言中,一个类只要实现了接口要求的所有函数,我们就说这个类实现了这个接口。
golang接口赋值实现方式一:将对象实例赋值给接口

package main

import "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 main

import "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()

golang中any类型使用及空接口中类型查询(代码片段)

golang中Any类型使用及类型查询1.Any类型GO语言中任何对象实例都满足空接口interface,空接口可以接口任何值varv1interface=1varv2interface="abc"varv3interface=2.345varv4interface=make(map[..]...)....2.1关于空接口的类型查询方式一,使用okpacka 查看详情

golang接口---上(代码片段)

GoLang接口---上定义隐式接口类型接口底层数据接口类型结构体itab结构体接口嵌套接口指针和接口golang中的值方法和指针方法参考代码必须能够被人阅读,只是机器恰好可以执行定义Go语言不是一种“传统”的面向对象编程语... 查看详情

golang去练习片段(代码片段)

查看详情

golang去练习(代码片段)

查看详情

[golang]语法基础之接口(代码片段)

说明接口可以理解为是定了一种约定,是一个较为抽象的类型。和之前说过的具体的类型例如string、map等是不一样的。一般来说,具体的类型,我们可以知道它是什么,并且可以知道它可以用来做什么。但是对于接口来说,接口... 查看详情

java抽象类与接口编程练习(代码片段)

一、面向抽象编程7175编程题编程语言:Java題目內容:使用接口或者抽象类编写程序实现显示员工基本信息。具体要求如下:(1)使用接口或者抽象类实现基类Employer(体会接口和抽象类的不同),包含姓名... 查看详情

golang的interface(代码片段)

golang的interface0.介绍接口是Go语言提供的数据类型之一,它把所有具有共性的方法(注意与函数区别开)定义在一起,任何其它类型只要一一实现这些方法的话,我们就称这个类型实现了这个接口。Go语言的接口与C++... 查看详情

golang使用接口进行从字符串到struct的类型转换的基本示例(代码片段)

查看详情

golang设计模式7.外观模式(代码片段)

7.外观模式外观模式,为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。像平时我们操作slice的时候,尤其是往slice中间插入、删除元素多有不便,我们可以在slice... 查看详情

golang在任何类型中使用接口返回类型(代码片段)

查看详情

golang练习:斐波纳契闭合(代码片段)

查看详情

golang使用net/http包写http服务端(代码片段)

文章目录一、处理器Handler二、处理器函数HandleFunc三、使用原理四、请求多路复用器使用net/http标准库实现http服务端,通常有两种方式,分别是处理器和处理器函数。一、处理器Handler下面实现两个页面,每个页面使用... 查看详情

golang类型断言的使用(typeassertion)(代码片段)

第一部分首先,转自https://studygolang.com/articles/3314对断言的基本介绍golang的语言中提供了断言的功能。golang中的所有程序都实现了interface的接口,这意味着,所有的类型如string,int,int64甚至是自定义的struct类型都就此拥有了interface... 查看详情

代码篇从零开始一步步搭建自己的golang框架(代码片段)

前言importcyclenotallowed不知道是不是有很多学习golang的新人会遇到这样的问题。包循环引用这个问题,让人很头疼,尤其是在项目越来越复杂的时候,出现这么一句报错,这意味着你可能需要修改很多代码,这对一个新人来讲压力... 查看详情

golang基础练习(代码片段)

//遍历mappackagemainimport"fmt"funcmain()x:=make(map[string]int)x["zhangsan"]=3x["lisi"]=4x["wangwu"]=5//#丢弃值fori,_:=rangexfmt.Println(i)//匿名函数packagemainimport"fmt"funcmain()f:=func(x,yint)intret 查看详情

使用golang开发一个本地代理(代码片段)

...透传参数调用dll,将返回的结果转换为Json。如今我想用Golang来实现这个功能,它不 查看详情

随笔练习:二叉树---golang(代码片段)

typenodestructdataintlchild*noderchild*nodefuncnewNode(dataint)*nodereturn&nodedata:datatypebinaryTreestructroot*nodefunc(o*binaryTree)append(dataint)tmp:=newNode(data)ifo.root==nilo.roo 查看详情

golang声明接口内联的语法(代码片段)

查看详情