作为澄清我的问题的示例,在 Google Go 1.0 中,“io”包中定义了以下接口:
type Reader interface {
Read(p []byte) (n int, err error)
}
尤其是结果参数列表(n int, err error)
让我很感兴趣。根据接口的文档,本质上字节数不能为负数:
它返回读取的字节数 (0 <= n <= len(p))[...]
在 C 中,使用的原因int
是带内值-1
表示错误条件(请参阅有效 Go:多个返回值)。由于有多个返回值,因此不需要特殊的带内值。
Go 1.0 中存在类型uint
。
在仅使用正范围 [0,∞) 而无需具有特殊带内值的值的情况下,使用int
vs的具体原因是什么?uint