我想创建一个实现 的结构io.Writer
,即Write(p []byte) (n int, err error)
. 该结构将省略传递给它的某些字节,因此实际上不会写入p
参数中传递的所有字节。(实际目的并不重要,但例如可以忽略写入的前 10 个字节、忽略每第二个字节或其他改变调用者传递给方法的字节数的内容)。
该文件对io.Writer
的Write
方法说了这样的(重点煤矿):
Write 将 len(p) 个字节从 p 写入底层数据流。它返回从 p (0 <= n <= len(p)) 写入的字节数以及遇到的导致写入提前停止的任何错误。如果 Write 返回 n < len(p) ,则它必须返回非 nil 错误。写入不得修改切片数据,即使是临时修改。
我应该返回什么n
值?为了遵守文档,成功后我应该返回len(p)
. 但是,该方法实际上可能没有写入那么多字节,并且返回值将是“错误的”。
忽然笑
相关分类