教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 go语言学习笔记 — 接口 — 接口声明:接口是什么,接口的声明形式,开发中常见的接口写法

go语言学习笔记 — 接口 — 接口声明:接口是什么,接口的声明形式,开发中常见的接口写法

发布时间:2022-02-27   编辑:jiaochengji.com
教程集为您提供go语言学习笔记 — 接口 — 接口声明:接口是什么,接口的声明形式,开发中常见的接口写法等资源,欢迎您收藏本站,我们将为您提供最新的go语言学习笔记 — 接口 — 接口声明:接口是什么,接口的声明形式,开发中常见的接口写法资源
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"/></svg><h2>1. go语言的接口是什么</h2> <ul><li>具体特性</li></ul>

接口是双方约定的一种合作协议。接口实现者不需要关心接口被如何使用,调用者也不需要关心接口的实现细节。

<ul><li>抽象特性</li></ul>

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


<h2>
2. 接口的声明形式</h2>

每个接口(类型)由数个方法组成。接口定义如下:

<pre><code class="lang-go hljs"><span class="token keyword">type</span> 接口<span class="token punctuation">(</span>类型<span class="token punctuation">)</span>名 <span class="token keyword">interface</span> <span class="token punctuation">{</span> 方法名<span class="token function">1</span><span class="token punctuation">(</span>参数列表<span class="token number">1</span>) <span class="token punctuation">(</span>返回值列表<span class="token number">1</span><span class="token punctuation">)</span> 方法名<span class="token function">2</span><span class="token punctuation">(</span>参数列表<span class="token number">2</span>) <span class="token punctuation">(</span>返回值列表<span class="token number">2</span><span class="token punctuation">)</span> <span class="token operator">...</span> <span class="token punctuation">}</span> </code></pre>

接口(类型)名:使用type关键字声明自定义类型——接口。接口命名一般约定在单词后添加er,如写操作接口为Writer,有字符串功能的接口为String,有关闭功能的接口叫Closer。

方法名:当接口(类型)首字母是大写,且方法名首字母也大写时,这个方法可以被接口所在包之外的代码访问。

参数列表、返回值列表:两者中的参数变量名可以被忽略。如

<pre><code class="lang-go hljs"><span class="token keyword">type</span> writer <span class="token keyword">interface</span> <span class="token punctuation">{</span> <span class="token function">Write</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token builtin">byte</span><span class="token punctuation">)</span> <span class="token builtin">error</span> <span class="token punctuation">}</span> </code></pre>
<h2>
3. 开发中常见的接口写法</h2>

go内置包中有很多接口,如io包中的Writer接口:

<pre><code class="lang-go hljs"><span class="token keyword">type</span> Writer <span class="token keyword">interface</span> <span class="token punctuation">{</span> <span class="token function">Write</span><span class="token punctuation">(</span>p <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token builtin">byte</span><span class="token punctuation">)</span> <span class="token punctuation">(</span>n <span class="token builtin">int</span><span class="token punctuation">,</span> err <span class="token builtin">error</span><span class="token punctuation">)</span> <span class="token punctuation">}</span> </code></pre>

Writer接口可以调用Write()方法,写入一个字节切片([]byte),返回值表明写入字节数(n int)和可能发生的错误(err error)。还有fmt包的Stringer接口:

<pre><code class="lang-go hljs"><span class="token keyword">type</span> Stringer <span class="token keyword">interface</span> <span class="token punctuation">{</span> <span class="token function">String</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token builtin">string</span> <span class="token punctuation">}</span> </code></pre>

Stringer接口使用频率较高,把对象以字符串形式展现。在调用String()方法时,都可以获得对象对应的字符串。

go语言每个接口中的方法数量不会太多。go希望一个接口只精确描述一个特定功能,然后通过多个接口内嵌与组合的方式,把简单接口扩展为复杂接口。

到此这篇关于“go语言学习笔记 — 接口 — 接口声明:接口是什么,接口的声明形式,开发中常见的接口写法”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
go语言学习笔记 — 接口 — 接口声明:接口是什么,接口的声明形式,开发中常见的接口写法
go语言学习笔记(十三)——接口类型
go struct 成员变量后面再加个字符串是什么意思?_Go语言的学习笔记(第十章) 接口...
浅谈golang中的接口
go语言学习笔记 — 接口 — 实现接口的条件(2):接口中的方法都被实现
Golang学习笔记(十二):接口的声明与使用
Go语言基础之接口(面向对象编程下)
golang 接口_Golang之接口
第07章 Go语言接口(interface),Golang接口(interface)
Go语言接口interface

[关闭]
~ ~