見出し画像

Rustの演習「Rustlings」やってみたら意外な技術が上がりそうだと思った話 【Rustを分かりたい-Rustlings1】 #17

Rustlingsの準備とやってみた感想です。

*スクショの雰囲気が画像ごとに違うのは解決済みの演習用に作成した仮想環境が混じっているからです。

注意

この記事(今シリーズ)は初心者がRustをかじりながら、備忘録のような形で投稿していく予定です。
そのため、今シリーズ全体を通して信憑性は非常に低いです。
また専門の方などから見れば、無茶苦茶なこと、おかしなことをしているかもしれませんがご容赦ください。

Rustlingsとは

rustの練習問題集的なやつです。rustのドキュメント的な The Rust Programming Language (日本語版) などをベースに作られているよう。

Greetings and welcome to Rustlings. This project contains small exercises to get you used to reading and writing Rust code. This includes reading and responding to compiler messages!
It is recommended to do the Rustlings exercises in parallel to reading the official Rust book, the most comprehensive resource for learning Rust 📚️
Rust By Example is another recommended resource that you might find helpful. It contains code examples and exercises similar to Rustlings, but online.
------------------
ご挨拶、そしてラストリングスへようこそ。このプロジェクトには、Rustコードの読み書きに慣れるための小さな演習が含まれています。これには、コンパイラメッセージの読み取りと応答が含まれます!
Rustを学ぶための最も包括的なリソースである公式のRust本を読むのと並行してRustlingsの演習を行うことをお勧めします📚️
Rust By Exampleは、役に立つかもしれないもう一つの推奨リソースです。ラストリングスに似たコード例と演習が含まれていますが、オンラインです。

https://github.com/rust-lang/rustlings

準備

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はそのままクリアになりますが、これ以降は演習を解いていきます。

  1. rustlingsを起動

  2. 現在の演習が表示される

  3. 演習ファイルを開く(vs codeならcmd + クリック)

  4. 演習を解く

    1. ファイルの編集

  5. 演習が解けたらnで次の演習へ(qで終了(保存)、lで演習リスト)

  6. わからなくなったらhをターミナルに入力することでヒントを出せます。

    1. 調べても全然アリだと思う

ちなみにヒントはこんな

「コンパイラは、print マクロの名前が間違っていることを通知しています。また、1つの選択肢も提案しています。」だそう。rustはコンパイラの出すエラーが結構優秀なんでそれを見ろってとこですかね。

感想

実は09くらいまでやったのですが、基礎的なことなのですっごい難しいということはないです。ところどころ、https://doc.rust-jp.rs/book-ja/   みたり、どうしても無理な演習はブログなどの答えみました。一応答えもあるぽい。比率としては(体感ですが)出来る:ドキュメント見た:答えみた = 6:3:1くらい。

他人のコードを読む機会になる

私はあくまで趣味でrustやってるということもあり、他の人が書いたソースコードを見るという事をしてきませんでした。ただrustlingsをやる上で(英語能力が低いためコメントの理解が浅い)ソースコードだけで何をしているのかを判断することがありました。

普段は自分のコードしか見ていないので、忘れがちとは言えそのコードの意図をある程度覚えているわけです。しかしrustlingsのコードは完全な他人が書いたコードであり、私は基本的にコードからしか情報を読み取れず、そのコードがどのように使われているのかを推論する必要がありました。ただ、それが結構いい経験になりました。複数人での開発だけでなく純粋にコードの理解力的なものの向上にもいいかなとも。

あとはこれを気に他のコードを読んでみるというのもいいかも。ちなみに他の演習として"100 Exercises To Learn Rust"というのもあるそう。ネット見てるとちょっと難しいといった感じもします。

次回

rustlingsの演習か分からなかったものたちの紹介かなぁ。

いいなと思ったら応援しよう!

この記事が参加している募集