美文网首页
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语言接口声明(定义)

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