美文网首页工作生活
Golang笔记: 接口(interface)

Golang笔记: 接口(interface)

作者: Boston199834 | 来源:发表于2019-07-07 16:21 被阅读0次

        Go语言不是一种“传统”的面向对象编程语言,它里面没有类和继承的关系。但是Go语言通过灵活的接口概念,可以实现很多面向对象的特性,不同于其他语言的接口概念,GO语言的接口独特在满足隐式实现(没必要给具体类型定义所有满足的接口类型)。

接口声明:

接口声明格式

        说明:接口类型名,使用 type 将接口定义为自定义类型名,在类型名结尾加 er

        注:Go语言的每个接口中的方法数量不会很多。Go语言希望通过一个接口精准描述它自己的功能,而通过多个接口的嵌入和组合的方式将简单的接口扩展为复杂的接口。

接口的实现条件

        如果一个任意类型 T 的方法集为一个接口类型的方法集的超集,则我们说类型 T 实现了此接口类型。T 可以是一个非接口类型,也可以是一个接口类型。实现关系是隐式的,没有类似与 implements的关键字,Go会在需要的时候自动检查两个类型之间的关系

        1:接口被实现的条件一:接口的方法与实现接口的类型方法格式一致

        在类型中添加与接口签名一致的方法就可以实现该接口方法,签名方法包括方法中的名称,参数列表,返回值列表。反之就不会被实现该接口方法

签名一致

        2:接口中所有方法均被实现

                当一个接口中有多个方法时,只有这些方法都被实现了,接口才能被正确编译并使用。

类型与接口之间的关系

        类型和接口之间有一对多和多对一的关系

                1:一个类型可以同时实现多个接口,而接口之间彼此独立,不知道对方的实现

                2:多个类型可以实现相同的接口,一个接口的方法,不一定需要由一个类型完全实现,接口的方法可以通过在类型中嵌入其他类型或者结构体来实现。也就是说,使用者并不关心某个接口的方法是通过一个类型完全实现的,还是通过多个结构嵌入到一个结构体中拼凑起来共同实现

接口嵌套

        不仅结构体与结构体之间可以嵌套,接口与接口间也可以通过嵌套创造出新的接口

接口嵌套

空接口类型 (interface{})

        1:空接口是接口类型的特殊形式,空接口没有任何方法,因为任何类型都无需实现空接口。从实现的角度看,任何值都满足这个接口的需求。因此空接口类型可以保存任何值,也可以从空接口中取出原值。

        空接口内部实现保存了对象的类型和指针,使用空接口保存一个数据的过程会比直接用数据对应类型的变量保存稍慢,因此在开发过程中尽量少用,应该需要的地方使用空接口。

空接口赋值

            代码输出结果值是: 1  ;   hello  ; false

           2:空接口的值比较,空接口在保存不同的值后,可以和其他变量值一样使用 == 进行比较操作

类型的可比较性

相关文章

  • Golang笔记: 接口(interface)

    Go语言不是一种“传统”的面向对象编程语言,它里面没有类和继承的关系。但是Go语言通过灵活的接口概念,可以实现很多...

  • 接口 interface golang

    原文链接:接口 interface-GOLANG

  • interface{} 接口类型

    interface定义 interface(接口)是golang最重要的特性之一,Interface类型可以定义一...

  • Golang学习笔记之接口(interface)

    接⼝是⼀个或多个⽅法签名的集合,任何类型的⽅法集中只要拥有与之对应的全部⽅法,就表⽰它 "实现" 了该接⼝。 所谓...

  • 接口 interface-GOLANG

    golang -@amazeUI -2017-10-10 22:50:55 //func main() { // ...

  • Golang笔记--interface

    接口(interface) [TOC] 接口类型是对其它类型行为的抽象和概括, 接口把实现分离, 可以此来实现面向...

  • Golang 数据排序

    sort.Interface 接口 这个接口是 sort 包的核心,它有3个方法。这是 Golang 很酷的一个特...

  • Golang 中的接口 (interface)

    依赖于接口而不是实现,优先使用组合而不是继承,这是程序抽象的基本原则。Golang 中的 interface 让编...

  • Golang接口interface的使用

    关键字interface 如果一个结构体绑定的方法包含接口的所有方法,即认为实现了该接口 将对象赋值给接口时,会发...

  • 《日子》golang-接口interface

    接口interface -接口是一个或多个方法签名的集合-只要某个类型拥有该接口的所有方法签名,即逄实现该接口,无...

网友评论

    本文标题:Golang笔记: 接口(interface)

    本文链接:https://www.haomeiwen.com/subject/ajmwcctx.html