http - ResponseWriter.Write 返回的 int 是什么意思?
问题描述
https://golang.org/src/net/http/server.go#L139
我本来希望签名是Write([]byte) error
,不是Write([]byte) (int, error)
。通过查看用法,我也找不到任何好的解释,文档注释也没有解释返回值。
退货int
是什么意思?
解决方案
该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),则写入必须返回非零错误。
推荐阅读
- ios - ContainerViewController 中的 Item 是什么
- php - Prestashop 1.7 搜索引擎的修改,'-' '' 字符,
- java - Spring Boot 默认异常映射到标准 HTTP 状态码
- javascript - Sequelize,findOrCreate后获取id
- python - 数据框字典中列的总和
- java - JSplitPane 中如何动态改变组件
- makefile - Makefile:匹配任何东西的模式规则
- javascript - 带有缓冲区的 NodeJS 内存泄漏
- javascript - ES6中Class的导出方法
- javascript - Safari 浏览器在重定向 window.location 时崩溃