2017-07-04 9 views

答えて

3

RFC 517は、これらの機能について説明し、関数は値を返すの上にバッファを取る理由には二つの理由について説明します。

  • パフォーマンスを。読み取りにいくつかの多数のバイトが含まれることが分かっているときは、バッファを事前に事前に割り当てることができます。

  • 「原子性」が懸念されます。 read_to_endでは、途中で読み込みに失敗した場合でも、このAPIを使用してこれまでに収集されたデータを保持することができます。 read_to_stringの場合はそうではありません。そのような場合はUTF-8の妥当性を保証できないためです。中間結果が必要な場合は、read_to_endを使用して、最後にのみStringに変換できます。第一の点について

、文字列は、関連する機能String::with_capacityを用いて事前に割り当てることができます。非常によく似た関数がベクトルのために存在する:Vec::with_capacity

関連する問題