yiskw note

機械学習やプログラミングについて気まぐれで書きます

Rustコードの基礎を勉強するための演習ができる rustlings


概要

最近Rustの勉強をしていて色々と調べていたところ、rustlingsというものを見つけました。
rustlingsは、Rustコードの読み書きに慣れるための小演習を行うことができるツールです。
実際に使ってみて非常に良かったので、簡単にですが使い方などについて紹介していきたいと思います。

rustlingsとは

github.com

rustlingsは、Rustコードの読み書きに慣れるための小演習を行うことができるツールです。
基本的なデータ型や関数から、所有権、イテレータ、トレイトなどの幅広いトピックを、実際に問題を解きながら学ぶことができます。
また、問題を解くにあたって、Rustのコードを読み解いたり、エラーメッセージと睨めっこする必要があるので、そういったものに慣れるという意味でも、非常に有用なツールだと思います。
ただし、Rustの文法を1から学ぶためのものというよりかは、Rustの文法を一通り学んだ後の練習問題、という立ち位置だと思いますので、Rustの文法自体は別の教材などで勉強する必要があります。

インストールの方法

インストール方法は簡単で、MacOS/Linuxでは以下を実行するだけです。
※予めXcodegccをインストールしておく必要があります。詳しくは、README.mdを参考にしてください。

curl -L https://raw.githubusercontent.com/rust-lang/rustlings/main/install.sh | bash
# Or if you want it to be installed to a different path:
curl -L https://raw.githubusercontent.com/rust-lang/rustlings/main/install.sh | bash -s mypath/

使い方

基本的には、ターミナルにてrustlings watchコマンドを実行し、指定されたファイルがコンパイルできるように、コードを修正していくだけです。

`rustlings watch`コマンドを実行したときの画面。この場合、`exercises/move_semantics/move_semantics6.rs`ファイルがコンパイルできるように、コードを修正していく

また、問題の解法がわからない場合は、rustlings watchを実行中のターミナルにて、hintとタイプすることでヒントを表示させることができます。

`rustlings watch`のサブコマンドである`hint`を実行したときの画面。この問題に関するヒントをくれる。

解答

rustlingsには、公式の解答が用意されていないようです。
ただし、様々な方が解答を公開してくださっているので、わからない場合は rustlings solution などと検索すると良いかと思います。
参考までに自分の解答を以下に載せておきます。

github.com

Reference