私の質問を明確にする例として、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
の帯域内値でした( Effective Go:複数の戻り値を参照)。複数の戻り値があるため、特別な帯域内値は必要ありません。-1
Go1.0にはタイプuint
があります。
特別な帯域内値を必要とせずに正の範囲[0、∞)のみを使用する値の場合とint
比較して、使用する具体的な理由は何ですか?uint