type Reader interface {Read(p []byte) (n int, err error)}
为了实现io.Reader这个接口,你只需要实现一个Read方法,这个方法接受一个byte切片,返回一个整数和可能出现的错误 。
这和传统的面向对象编程语言的接口系统有本质的区别 。Go语言的接口更小,只倾向于定义一个单一的动作 。实际使用中,这更有利于使用组合来复用代码 。用户几乎可以给所有包含数据的类型实现io.Reader接口,然后把这个类型的实例传给任意一个知道如何读取io.Reader的Go函数 。
Go语言的整个网络库都使用了io.Reader接口,这样可以将程序的功能和不同网络的实现分离 。这样的接口用起来有趣、优雅且自由 。文件、缓冲区、套接字以及其他的数据源都实现了io.Reader接口 。使用同一个接口,可以高效地操作数据,而不用考虑到底数据来自哪里 。
1.1.4 内存管理不当的内存管理会导致程序崩溃或者内存泄漏,甚至让整个操作系统崩溃 。Go语言拥有现代化的垃圾回收机制,能帮你解决这个难题 。在其他系统语言(如C或者C++)中,使用内存前要先分配这段内存,而且使用完毕后要将其释放掉 。哪怕只做错了一件事,都可能导致程序崩溃或者内存泄漏 。可惜,追踪内存是否还被使用本身就是十分艰难的事情,而要想支持多线程和高并发,更是让这件事难上加难 。虽然Go语言的垃圾回收会有一些额外的开销,但是编程时,能显著降低开发难度 。Go语言把无趣的内存管理交给专业的编译器去做,而让程序员专注于更有趣的事情 。
本文摘自《Go语言实战》
推荐阅读
- 红茶适合女人喝吗,女人要喝什么茶好
- 如何让男人对你爱欲攀升
- 三国演义中关羽在曹营到底多少年? 刘备为什么没有支援关羽
- 男女是否适合做夫妻的10个标准
- 犹太人真的很聪明吗 犹太人到底有多聪明
- 老年人骨折与茶,老年人适合喝什么茶
- 世人对曹植的评价 曹植的历史评价
- 经常喝茶对身体有害,茶烟到底对身体有害吗
- 黄茶到底属于什么茶呢,四季春茶属于什么茶
- 花草茶的疗效,电脑族选适合自己的花草茶