在函数实现上方的注释中(https://golang.org/src/strings/builder.go),我们看到:“返回的错误始终为零。”。这同样适用于写入字符串生成器的所有其他变体。
在内部,如果内部缓冲区已满并且操作系统拒绝重新分配所需的内存,则此类函数可能会失败,但显然在实现中没有处理这一点。
该 API 的用户是否应该考虑 Write* 在标准库的未来版本中返回错误的可能性?如果不是,为什么会返回错误?
错误返回参数是为了满足特定的接口,例如io.ByteWriter. 换句话说,虽然 的strings.Builder实现确实WriteByte可能不会失败,但同样满足相同接口的同一方法的其他实现可能会返回错误。
这在 的文档中有更明确的说明bytes.Buffer。也可以看看bufio.Writer。
为了使您的程序实现更加面向未来,我建议您无论文档内容如何,都继续检查错误。