首页 > 解决方案 > ResponseWriter.Write 返回的 int 是什么意思?

问题描述

https://golang.org/src/net/http/server.go#L139

我本来希望签名是Write([]byte) error,不是Write([]byte) (int, error)。通过查看用法,我也找不到任何好的解释,文档注释也没有解释返回值。

退货int是什么意思?

标签: httpgo

解决方案


ResponseWriter.Write()方法是实现通用io.Writer接口,因此http.ResponseWriter可以使用/传递一个值给任何接受/在io.Writer.

io.Writer只有一种Write()方法,它详细说明了 的“合同” Write,它应该返回什么以及它应该如何工作:

type Writer interface {
    Write(p []byte) (n int, err error)
}

Write 将 len(p) 个字节从 p 写入底层数据流。它返回从 p (0 <= n <= len(p)) 写入的字节数以及遇到的任何导致写入提前停止的错误。如果返回 n < len(p),则写入必须返回非零错误。


推荐阅读