Rust in Action Notes 第 7 章 ファイルとストレージ

  1. serdeこのライブラリは、シリアル化 (シリアル化) および逆シリアル化 (デシリアライズ) 機能を提供します。derive によって生成された Rust のカスタム タイプ (構造体) は、ネットワーク間で送信するために、JSON、CBOR、bincode など、一般的に使用される互換性のあるさまざまなタイプに変換できます。その中で、JSON はより一般的に使用されるタイプであり、人間が読み取り可能であることと機械が読み取り可能であるという特徴があります。他の 2 つは機械読み取り可能のみです。215 ページに例が示されています。
  2. hexdump メソッドを使用してファイルのコンテンツを取得し、一連のバイト ストリームを 2 つの 16 進数 (つまり、正確に 1 バイト) に変換します。このビューは fview (ファイル ビュー ファイル ビュー) と呼ばれます。表 7.2 に、fview の入力と出力を示します。表7.2
  3. 複数行の文字列を生の文字列 (生の文字列) として使用する場合、二重引用符をエスケープする必要はありません。生の文字列のパターンは接頭辞、区切り文字であり、追加の接頭辞は、次の文字列が UTF-8 文字 (&str) ではなくバイト (&[u8]) としてみなされることを意味します。次の図はr#ですb生の文字列
  4. f.read_exact(&mut buffer)このメソッドはソースから途中fにデータbufferを転送し、バッファがいっぱいになると停止します。バッファが f のデータより長い場合はエラーが返されます。std::env::args()コマンド ラインのパラメータを読み取るために使用されます。
  5. std::fs::OpenOptions書き込み可能なファイルを作成するために使用できます。やFile::openとは異なりFile::create、一部の機能をカスタマイズできます。 open と create の違いは次の表に示されています表7.3
  6. ファイル パスを処理するときにライブラリを使用することをお勧めしますPath。次の 3 つの利点があります: a. 開発者の意図が明確になる (たとえば、メソッドで拡張子を設定できる) b.マルチプラットフォーム互換性、異なるオペレーティングシステムではファイル パスを処理できない (set_extension()たとえば、一部のオペレーティング システムではファイル名の大文字と小文字が区別され、他のオペレーティング システムでは区別されず、異なるオペレーティング システムでは異なるパス区切り文字が使用されます) Pathstd::Stringstd::path::Path表7.4
  7. セクション 7.5 は、単にインメモリ データベース プロジェクトを構築し、使用規則と無力化の呼び出しパスを紹介するもので、小さいながらも包括的なソフトウェアcargo.tomlエンジニアリング実践プロジェクトであり、Rust ツールの個人開発にとって非常に刺激的です。libbin
  8. セクション 7.6.1 では、条件付きコンパイルの使用法 (条件付きコンパイル) を紹介します。条件付きコンパイルが必要なステートメントを上に追加すると、そのステートメントを#[cfg(target_os="windows")]Windows システムでのみコンパイルすることができます。非動作の場合、シンボルはありませんが、!=設定#[cfg(not(...))]できるコンパイル条件には、target_arch、target_env などが含まれます。詳細は、227 ページを参照してください。
  9. std::io::ErrorKind::UnexpectedEofこのエラーは、プログラムがファイルの終わりを読み取るときに報告されるエラーです。EOF は 0 バイト (0u8) です。ファイルの終わりには、ファイルが終了したことを示す特別なマークがないため、ファイルの終わりを読み取ることができない場合にこのエラーがスローされます。
  10. セクション 7.7.3 では、バイナリ データをディスクに書き込む順序について説明します。ビッグ エンディアン/リトル エンディアンの書き込み方法を指定できます。このようなデータには 1 バイトしかないため、ビッグ エンディアンとスモール エンディアンを指定する必要がないことに注意してください。このように指定でき、書き込み効果は 233 ページで確認できi8, u8ますu32, f64
  11. セクション 7.7.3 では、ディスクへの書き込みの検証方法を紹介します。一般的な 3 つの方法は、パリティ ビット、巡回冗長法 (CRC32)、および暗号化ハッシュ関数です。これらの比較を次の表に示します。表7.8

おすすめ

転載: blog.csdn.net/Mint2yx4/article/details/131396607