第五章 接口2--系统常用接口

简介: 下面介绍几个常用的接口

下面介绍几个常用的接口


1. stringer


  在fmt.print中定义了一个Stringer接口. 这个接口里只有一个方法String. 实现了这个接口的String方法的结构体,  那么在外部调用打印结构体的时候, 将按照Stringer中定义的方式打印.

微信图片_20220509210959.png

例如给Retriever结构体增加一个String方法.


type Retriever struct {
    Contents string
}
func (r *Retriever) String() string {
    return fmt.Sprintf("Contents:%s", r.Contents)
}


使用的时候, 打印对象, 可以看到直接按照String中定义的格式打印


func main() {
    retriever := &mock.Retriever{"内容"}
    fmt.Printf("结构体的值是----%s \n", retriever)
}


直接打印, 打印结果如下:


结构体的值是----Contents:内容 


2. io中的Reader和Write


 通过学些这两个接口, 对接口的: 由使用者来定义接口有了进一步的理解.  

 比如说Reader接口, 定义了一个Read方法


微信图片_20220509211108.png


Writer接口定义了一个Write方法


微信图片_20220509211110.png


实现了Read方法的结构体有很多, 比如io中的File. 他既实现了Read, 又实现了Write. File这个结构体提供了一些能力, 比如读的能力, 写的能力. 但是, File不会明说我实现了哪些接口. 而只是说定义了哪些方法. File中实现的接口, 有些接口是主动定义的, 有些接口碰上的, 正好他也是这么定义的.


  因此, 就是说. 我们定义一个接口, 接口里定义了方法. 而在结构体中, 定义了方法和接口中定义的方法的入参和返回值一致, 我们就认为它实现了这个接口. 虽然我们认为他实现了接口, 但是不是真的实现了接口, 要使用的时候来决定. 如果使用的时候作为接口的实体使用, 那么就表示实体继承了接口. 但是, 如果没有作为接口的实体使用, 那么他就不是实现了接口.


定义方法的时候, 参数尽量使用接口, 这样定义出来的方法, 只要实现了接口的结构体都能用

相关文章
|
4月前
|
Java
设计接口的几种方法
设计接口的几种方法
|
6月前
|
安全 前端开发 NoSQL
如果让你设计一个接口,你会考虑哪些问题?
接口设计需关注参数校验、扩展性、幂等性、日志、线程池隔离、异常重试、异步处理、查询优化、限流、安全性、锁粒度和避免长事务。入参与返回值校验确保数据正确性;考虑接口扩展性以适应不同业务需求;幂等设计防止重复操作;关键接口打印日志辅助问题排查;核心接口使用线程池隔离确保稳定性;异常处理中可采用重试机制,注意超时控制;适合异步的场景如用户注册后的通知;并行查询提升性能;限流保护接口,防止过载;配置黑白名单保障安全;适当控制锁粒度提高并发性能;避免长事务影响系统响应。
|
5月前
|
Java 程序员
JavaSE——面向对象高级二(3/4)-接口(认识接口、接口的好处)以及接口的综合案例(设计班级学生的信息管理模块)
JavaSE——面向对象高级二(3/4)-接口(认识接口、接口的好处)以及接口的综合案例(设计班级学生的信息管理模块)
34 0
|
6月前
|
JSON 数据格式
如何创建接口,设计过接口
项目遵循Restful规范设计接口,请求路径基于资源命名,如查询用GET,新增用POST,修改用PUT,删除用DELETE。GET参数通过问号或路径传递,POST/PUT用JSON。统一的接口规范规定:返回数据多时,用VO过滤或整合数据。
44 0
|
前端开发 微服务
|
Java 编译器
接口的学习与总结
接口的学习与总结
|
安全 测试技术 API
python接口自动化(一)--什么是接口、接口优势、类型(详解)
经常听别人说接口测试,接口测试自动化,但是你对接口,有多少了解和认识,知道什么是接口吗?它是用来做什么的,测试时候要注意什么?坦白的说,笔者之前也不是很清楚。接下来先看一下接口的定义。
222 0
python接口自动化(一)--什么是接口、接口优势、类型(详解)
|
C#
C# 接口案例
C# 接口案例
105 4
|
jenkins 测试技术 持续交付
python接口自动化(三十五)-封装与调用--流程类接口关联(详解)
流程相关的接口,主要用 session 关联,如果写成函数(如上篇),s 参数每个函数都要带,每个函数多个参数,这时候封装成类会更方便。在这里我们还是以博客园为例,带着小伙伴们实践一下。
387 0
python接口自动化(三十五)-封装与调用--流程类接口关联(详解)
|
jenkins 持续交付 Python
python接口自动化(十五)--参数关联接口(详解)
我们用自动化新建任务之后,要想接着对这个新建任务操作,那就需要用参数关联了,新建任务之后会有一个任务的Jenkins-Crumb,获取到这个Jenkins-Crumb,就可以通过传这个任务Jenkins-Crumb继续操作这个新建的任务。
468 0
python接口自动化(十五)--参数关联接口(详解)