Rustの演習「Rustlings」やってみたら意外な技術が上がりそうだと思った話 【Rustを分かりたい-Rustlings1】 #17
Rustlingsの準備とやってみた感想です。
*スクショの雰囲気が画像ごとに違うのは解決済みの演習用に作成した仮想環境が混じっているからです。
注意
この記事(今シリーズ)は初心者がRustをかじりながら、備忘録のような形で投稿していく予定です。
そのため、今シリーズ全体を通して信憑性は非常に低いです。
また専門の方などから見れば、無茶苦茶なこと、おかしなことをしているかもしれませんがご容赦ください。
Rustlingsとは
rustの練習問題集的なやつです。rustのドキュメント的な The Rust Programming Language (日本語版) などをベースに作られているよう。
準備
rust、rustlingsのインストールを行います。rustlings起動後はvs codeで編集するので、起動はvs codeのターミナルで実行したほうがいいかも…
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
// 👆rustのpath通しのためシェルの再起動が必要かも
// windowsはguiのインストーラです
// 👇でrustlingsのプログラムをインストール
cargo install rustlings
// rustlingsフォルダを置くための親ディレクトリへ移動
cd /develop //とか。お好みで
// 👇でrustlingsフォルダが作成されます
rustlings init
// 👇でrustingsで移動
cd rustlings/
// 👇で起動
rustlings
日本語版もあるそう…
起動
rustlings init すると以下のような構成のフォルダがカレントディレクトリ直下に作成されます。このrustingsフォルダをvs codeで開きます。
├── rustlings
│ ├── Cargo.lock
│ ├── Cargo.toml
│ ├── exercises
│ ├── solutions
│ └── target
進捗が違うので色合いは差異あると思いますが、こんな感じの画面になります。そしたらvs codeのターミナルで以下コマンドでrustlingsを起動します。
rustlings
起動するとこんな画面がターミナルに出ると思います。ターミナルには結果や進捗、今チェックされているファイルパスが出てます。ちなみにvs code内ならcmdキーと同時押しでそのファイルを開けます。
流れ
rustlingsの流れですが、rustlings起動時に最後まで進めた演習が表示されます。(初回はexercises/00_intro/introl.rs)00_intoro/intro.rsはそのままクリアになりますが、これ以降は演習を解いていきます。
rustlingsを起動
現在の演習が表示される
演習ファイルを開く(vs codeならcmd + クリック)
演習を解く
ファイルの編集
演習が解けたらnで次の演習へ(qで終了(保存)、lで演習リスト)
わからなくなったらhをターミナルに入力することでヒントを出せます。
調べても全然アリだと思う
「コンパイラは、print マクロの名前が間違っていることを通知しています。また、1つの選択肢も提案しています。」だそう。rustはコンパイラの出すエラーが結構優秀なんでそれを見ろってとこですかね。
感想
実は09くらいまでやったのですが、基礎的なことなのですっごい難しいということはないです。ところどころ、https://doc.rust-jp.rs/book-ja/ みたり、どうしても無理な演習はブログなどの答えみました。一応答えもあるぽい。比率としては(体感ですが)出来る:ドキュメント見た:答えみた = 6:3:1くらい。
他人のコードを読む機会になる
私はあくまで趣味でrustやってるということもあり、他の人が書いたソースコードを見るという事をしてきませんでした。ただrustlingsをやる上で(英語能力が低いためコメントの理解が浅い)ソースコードだけで何をしているのかを判断することがありました。
普段は自分のコードしか見ていないので、忘れがちとは言えそのコードの意図をある程度覚えているわけです。しかしrustlingsのコードは完全な他人が書いたコードであり、私は基本的にコードからしか情報を読み取れず、そのコードがどのように使われているのかを推論する必要がありました。ただ、それが結構いい経験になりました。複数人での開発だけでなく純粋にコードの理解力的なものの向上にもいいかなとも。
あとはこれを気に他のコードを読んでみるというのもいいかも。ちなみに他の演習として"100 Exercises To Learn Rust"というのもあるそう。ネット見てるとちょっと難しいといった感じもします。
次回
rustlingsの演習か分からなかったものたちの紹介かなぁ。