巷で噂になってからそこそこ経つプログラミング言語Rustについて本格的に勉強したくなったのでChatGPTを使って学ぼうと思う
AIをツールとして従えるための訓練という面もある(というかそっちがメイン)
Rustの特徴とかを知る
Q. Rustってどんなプログラミング言語?
A.コンパイル言語で、実行速度が速く、メモリ使用量を制御でき、高い並列性を持ち、安全性が強化されている
事前にざっと眺めた公式ドキュメントで推されていたようなことが書いてある
こんな文章がパッと出てくるのはやっぱりすごい
Q. Rustはどんな場面で使われている?
OS: GoogleがKataOSなる組み込み向けOSを開発しているらしい
Webブラウザ: ご存じの通りFirefoxの現場で使われている
ゲームエンジン: BevyエンジンというのがRustで実装されているようだ
Rustを勉強するには何から始めたらいい?
A. 公式ドキュメントを読み、コードを書き、ライブラリを触って、コミュニティに参加し、プロジェクトに参加
思っていたよりスコープの広い話で驚いたが、やはり公式ドキュメントのチュートリアルを読むのが手っ取り早そうだ
Rustのチュートリアルを読む
言われた通りにチュートリアルを読んでみる
有志による公式ドキュメントの日本語訳版があったのでありがたく利用させてもらおう
このチュートリアルを10章までやってみて、ある程度Rustの文法等は理解できた
ChatGPTにコードを書いてもらう
まだ無からコードを書くのはしんどい程度の知識量なので一旦AIにお手本を書いてもらう
最終的にRustでスクレイピングしてみたいので、手始めにHTTPリクエストするコードを質問してみた
Q. RustでHTTP リクエストを送信するコードを書いてほしい
use std::collections::HashMap; use std::io; #[tokio::main] async fn main() -> Result<(), Box<dyn std::error::Error>> { let resp = reqwest::get("https://httpbin.org/ip") .await? .json::<HashMap<String, String>>() .await?; println!("{:#?}", resp); Ok(()) }
※reqwestとtokioというクレートを使っているのでCargo.tomlを編集しておこう
[dependencies] reqwest = { version = "0.11", features = ["json"] } tokio = { version = "1", features = ["full"] }
このコードをコピペしてcargo run
で実行すると確かにhttpbin.orgからのレスポンスを受け取れているようだ
おまけ
こんなポンコツに教わってたのかよ!