GO语io包的常用接口
本文实例分析了GO语io包的常用接口。分享给大家供大家参考。具体分析如下:
我没有C/C++基础,没有接口的概念,且从Python投奔而来,Python的极简主义(一个结果往往只提供一个方法),让我在Golang中非常迷糊,特别是文件的读写操作,因为Go的文件读写操作有很多的方法,让我不知道怎么选择。直到我学习了interface的概念,然后由看了packageio后才慢慢理解,也渐渐的喜欢上了Golang的灵活性。以我的经验来说,接口是一个很重要的知识点,是一系列操作的规范,特别是公共接口尤为重要,如:packageio
本文仅仅列举最常用的几个接口,如果您想系统的学习io接口,建议阅读底部参考链接。
一、IO接口概述
packageos提供了对I/O原语的基本接口,使之成为共享的公共接口,这些公共接口抽象出了泛用的函数并附加了一些相关的原语的操作。因为这些接口和原语是对底层实现完全不同的低水平操作的包装,除非得到其它方面的通知,客户端不应假设它们是并发执行安全的。
在packageos中最重要的是两个接口:Reader和Writer接口。本章所提到的各种接口,都跟这两个接口有关,也就是说,只要实现了这两个接口,它就有了IO的功能。
小贴士:
varEOF=errors.New("EOF"):在packageio中定义,使用非常频繁。正常情况下当Read()无法得到更多返回时就返回EOF,即文件到达了结尾(end-of-file)。
二、io.Reader和io.Writer
定义:
typeReaderinterface{ Read(p[]byte)(nint,errerror) }
typeWriterinterface{ Write(p[]byte)(nint,errerror) }