
1概述
接口(接口)是一种用于指定对象应具有的方法的技术. OOP与结构结合使用,对象使用结构规范应具有的文字,并且该方法通过接口暴露给外部. Go语言的界面设计是非侵入性的,并且界面实现者(即结构)不需要指定要实现的界面. 编译器确定在编译时使用哪个接口.
在Go中,接口是引用的数据类型. 但是体现的功能是规范,而不是数据.
进行OOP开发时,通常必须确保一种类型的操作具有相同的方法调用,此时,必须使用接口.
2定义语法
演示为:

我们已经定义了一个Logger接口. 它定义了两个功能: 写go 语言接口实现,提取.
3个对象实现界面
根据接口定义,为对象定义相应的方法,即实现接口. 界面设计是非侵入性的,因此无需在结构上显式定义它.
对象实现接口时,具有以下特征:
一个类型对象可以实现多个接口,只需要实现所有接口中定义的方法即可. 请注意,接口是独立的且不相关.
一个接口可以同时由多种类型的对象实现.

接口的方法可以通过嵌入式结构来实现,而不必完全通过结构来实现.
4确定对象是否实现接口
我们将结构对象分配给接口对象,以检查该对象是否满足某个接口. 演示是:
在上面的代码中,如果fl对象满足接口日志的定义,则分配将成功. 如果不满意,则分配失败,并提示未实现该接口. 提示类似于:
不能在分配中使用fl(类型* FileLogger)作为Logger类型:
* fl没有实现Logger(缺少wirte方法)

类似地,如果函数参数是接口类型,则在调用函数时,传递的参数不符合该接口,并且将触发上述错误:
在上面的代码中,如果fl对象不符合接口Logger的定义,则函数调用将失败. 提示类似错误.
5通过接口调用对象方法
将对象分配给接口后go 语言接口实现,测试将通过且分配成功. 您可以使用该接口来调用对象方法. 此时,对象方法接收到的对象仍然是原始对象. 直接分配和函数调用分配相同.
6个空白界面
空接口,未定义成员接口.

语法演示:
因为没有定义函数,所以意味着所有对象都满足该接口. 此范围应扩展到所有数据类型. 不只是对象. 主要作用是类型通配符,通常在定义函数时表示函数可以接受任何类型的参数,例如.
在定义一个函数以接收空的接口类型参数时,可以使用该接口检测类型. 这种结构称为类型分支:
7接口之间的嵌套
接口类似于连接器主体,并且可以嵌套以实现接口重用的目的. 以系统软件包定义的接口为例:
这时,如果要实现WriteCloser接口,则需要实现Writer和Closer接口中定义的所有方法.
结束!
所有文章的组织方式: Go语言指南|小韩谈话课
原文来自: 小涵说课
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-173124-1.html
期待期待
自己什么都不需要担心