美文网首页
Go语言接口声明(定义)

Go语言接口声明(定义)

作者: 码二哥 | 来源:发表于2020-02-11 10:13 被阅读0次

参考:
http://c.biancheng.net/view/77.html

关键点:

通过关键词汇,实现快速理解,记忆目的

1、Go语言是一种传统面向对象编程语言,它里面没有继承的概念

2、Go语言中,接口类型会和特定的实现细节绑定在一起,这种抽象方式使得函数更加灵活和更加具有适应能力

3、接口是一种类型,也是一种抽象结构,不会暴露所含数据的格式类型以及结构

4、接口是用来什么的?

接口是用来对外的,实现 生产者调用者的分离,解耦;

如果是这个目的,就可以创建设计接口

5、接口设计原则

接口里的方法 建议 太多,能够达到准确描述自己的功能,即可。

提倡,通过简单接口之间的嵌套 或者 组合 从而 实现 复杂的接口

1、接口声明的格式

每个接口类型由数个方法组成。接口的形式代码如下:

type 接口类型名 interface{
    方法名1( 参数列表1 ) 返回值列表1
    方法名2( 参数列表2 ) 返回值列表2
    …
}

对各个部分的说明:

  • 接口类型名:使用 type 将接口定义为自定义的类型名。

    • Go语言的接口在命名时,一般会在单词后面添加 er,如有写操作的接口叫 Writer,有字符串功能的接口叫 Stringer,有关闭功能的接口叫 Closer 等。
  • 方法名:当方法名首字母是大写时,且这个接口类型名首字母也是大写时,这个方法可以被接口所在的包(package)之外的代码访问。

  • 参数列表、返回值列表:参数列表和返回值列表中的参数变量名可以被忽略,例如:

type writer interface{
    Write([]byte) error
}

2、开发中常见的接口及写法

Go语言提供的很多包中都有接口,例如 io 包中提供的 Writer 接口:

type Writer interface {
    Write(p []byte) (n int, err error)
}

这个接口可以调用 Write() 方法写入一个字节数组([]byte),返回值告知写入字节数(n int)和可能发生的错误(err error)。

类似的,还有将一个对象以字符串形式展现的接口,只要实现了这个接口的类型,在调用 String() 方法时,都可以获得对象对应的字符串。在 fmt 包中定义如下:

type Stringer interface {
    String() string
}

Stringer 接口在Go语言中的使用频率非常高,功能类似于 Java 或者 C# 语言里的 ToString 的操作。

Go语言的每个接口中的方法数量不会很多。

Go语言希望通过一个接口精准描述它自己的功能,而通过多个接口的嵌入组合的方式将简单的接口扩展复杂的接口。

相关文章

  • Go语言接口声明(定义)

    参考:http://c.biancheng.net/view/77.html 关键点: 通过关键词汇,实现快速理解...

  • 【Golang 基础】Go 语言的接口

    Go 语言中的接口   Go 语言中的接口就是方法签名的集合,接口只有声明,没有实现,没有数据字段。 只要某个类型...

  • Golang 学习笔记七 接口

    一、概念 《快学 Go 语言》第 9 课 —— 接口 1.接口定义Go 语言的接口类型非常特别,它的作用和 Jav...

  • go接口与反射

    go语言的interface是个很松散的概念,类型不必明确声明实现了接口,go语言通过内部维护一个实现此接口方法的...

  • go语言array, slice, map(四)

    array go语言数组,定义方法如下: var arr [n]type 声明方法 go语言也支持多维数组 sli...

  • 《Go语言四十二章经》第十九章 接口

    《Go语言四十二章经》第十九章 接口 作者:李骁 19.1 接口是什么 Go 语言接口定义了一组方法集合,但是这些...

  • go语言基础

    go语言基础 go 语言接口

  • Golang学习笔记-接口和错误

    接口 Go接口定义了方法后,其它类型只要实现了这些方法就是实现了接口。Go语言中接口类型的独特之处在于它是满足隐式...

  • Go语言之Interface(一)

    Go语言之Interface(一) 什么是interface 在面向对象语言中接口是:接口定义了一个对象的行为,但...

  • Go语言之Interface(一)

    Go语言之Interface(一) 什么是interface 在面向对象语言中接口是:接口定义了一个对象的行为,但...

网友评论

      本文标题:Go语言接口声明(定义)

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