怎么做网站里的悬浮窗口,网站吗,定制平台有哪些,织梦网站模版下载在使用Go语言的过程中#xff0c;无论你是实现web应用程序#xff0c;还是控制台输入输出#xff0c;又或者是网络操作#xff0c;不可避免的会遇到IO操作#xff0c;使用到io.Reader和io.Writer接口。也也许对这两个接口和相关的一些接口很熟悉了#xff0c;但是你脑海里…在使用Go语言的过程中无论你是实现web应用程序还是控制台输入输出又或者是网络操作不可避免的会遇到IO操作使用到io.Reader和io.Writer接口。也也许对这两个接口和相关的一些接口很熟悉了但是你脑海里确很难形成一个对io接口的继承关系整天的概貌原因在于godoc缺省并没有像javadoc一样显示官方库继承关系这导致了我们对io接口的继承关系记忆不深在使用的时候还经常需要翻文档加深记忆。本文试图梳理清楚Go io接口的继承关系提供一个io接口的全貌。io接口回顾首先我们回顾一下几个常用的io接口。标准库的实现是将功能细分每个最小粒度的功能定义成一个接口然后接口可以组成成更多功能的接口。最小粒度的接口typeReaderinterface{Read(p []byte) (nint, err error)}typeWriterinterface{Write(p []byte) (nint, err error)}typeCloserinterface{Close() error}typeSeekerinterface{Seek(offset int64, whenceint) (int64, error)}typeReaderFrominterface{ReadFrom(r Reader) (n int64, err error)}typeWriterTointerface{WriteTo(w Writer) (n int64, err error)}typeReaderAtinterface{ReadAt(p []byte, offint64) (nint, err error)}typeWriterAtinterface{WriteAt(p []byte, offint64) (nint, err error)}typeByteReaderinterface{ReadByte() (byte, error)}typeByteWriterinterface{WriteByte(c byte) error}ByteScanner比ByteReader多了一个UnreadByte方法。typeByteScannerinterface{ByteReaderUnreadByte() error}typeRuneReaderinterface{ReadRune() (r rune, sizeint, err error)}typeRuneScannerinterface{RuneReaderUnreadRune() error}组合接口Go标准库还定义了一些由上面的单一职能的接口组合而成的接口。typeReadCloserinterface{ReaderCloser}typeReadSeekerinterface{ReaderSeeker}typeReadWriterinterface{ReaderWriter}typeReadWriteCloserinterface{ReaderWriterCloser}typeReadWriteSeekerinterface{ReaderWriterSeeker}typeWriteCloserinterface{WriterCloser}typeWriteSeekerinterface{WriterSeeker}从它们的定义上可以看出它们是最小粒度的组合。最小接口的扩展有些结构体struct实现并且扩展了接口这些结构体是。有疑问加站长微信联系(非本文作者)