ChatGPT先生との学習記録です。 以下のロードマップで進めます。
- 目標:
cargo run hello→ "Hello, World!" と出す - 学ぶこと: Cargo, main関数,
std::env::args() - ミニ課題: 引数を受け取って
Hello, {name}!を出す
-
目標: 引数やオプションを扱えるツールを作る
-
crate:
clap -
ミニ課題:
mycli greet --name Alice→ "Hello, Alice!"mycli add 2 3→ "5"
-
目標: ファイルを読み込んで加工するCLI
-
ミニ課題:
mycli upper file.txt→ 中身を大文字化して表示mycli count file.txt→ 行数や単語数を表示
-
学ぶこと:
std::fs::File, バッファ読み込み, エラーハンドリング(Result)
-
目標: 見やすいコードにする
-
ミニ課題:
anyhowやthiserrorでエラー処理を整える- srcを複数ファイルに分割する(
mod,lib.rs)
-
目標: Rustらしい高速処理に挑戦
-
ミニ課題:
- URLを複数叩いてステータスコードを返すツール
- 並列処理(
rayon) or 非同期処理(tokio+reqwest)
- Cargoでバイナリとして配布できるようにする
- READMEを書いてGitHubに公開
- 余力があれば
cargo install mycliで入れられるように crates.io に公開