どうも、たくチャレ(@takuchalle)です。

Rust 2 Advent Calendar 2020の5日目が空いていたので、ちょうどrustlingsが一通り終わったということもあり書いてみました。他の記事と比べて内容は薄めです。


ツイッターを見てたらrustlingsというRustに慣れるためのエクササイズがまとまったツールを知りました。(そのツイートはもう探せなかったですが…)

:crab: Small exercises to get you used to reading and writing Rust code! - rust-lang/rustlings

これはイテレーションやトレイトなどのテーマ毎にエクササイズが分かれていて、最初はビルドやテストが通らないようになっています。 それらを通るようにコードを修正して進めていきます。

簡単な使い方

インストール方法はREADMEに書いてあるので、その通りにインストールします。 Mac/Linuxの場合は以下のようにします。

curl -L https://git.io/rustlings | bash
# Or if you want it to be installed to a different path:
curl -L https://git.io/rustlings | bash -s mypath/

rustlings watchコマンドを打つと順番にエクササイズがコンパイル・実行されていきます。

hintと打つと英語ですが、ヒントが表示されます。

rustlings runt [test 名]とすることでテストを個別に実行することもできます。例にerror_handling/result1.rsをテストしたら以下のようになります。

感想

文法を網羅的に学ぶようなエクササイズではないので、それは別途学習する必要はありますが、 Rustのコンパイルエラー文やテストと仲良くなれたかなと思います。

ただ、公式に正解がないので意図した解答になっているか不安にはなります。特にコンパイルを通すようなエクササイズだと問題の意図を汲まずにコンパイルだけを通すことは可能なので、意図していない解答になってるかもしれません。参考になるかわかりませんが、文末に私の解答のリンクを貼っておきました。

一覧を見てもらうとわかるのですが、イテレーション・トレイト・所有権・標準ライブラリ・clippy などRustの機能を一通り(?)触れることができるので、学習の初期段階でやってみるのでは良いのではないでしょうか。

私の解答

Answers of https://github.com/rust-lang/rustlings. Contribute to takuchalle/rustlings-answer develop

私が解いた解答はこのリポジトリにコミットしてあります。 間違い等があればプルリクをお待ちしています。