はじめに
こんにちは。細々とプログラミングをしているsotanengelです。
Rustの読み書きの練習にピッタリな問題集として知られるRustlingsを日本語に翻訳したので、
- 書籍などを読んで概要を理解したので実際にRustを書いてみたい👀
- Rustlingsは英語で書かれていてとっつきにくいなぁ
という人は以下のリポジトリの日本語翻訳バージョンにトライしてみてください!!
以下、使い方や経緯などをざっくりとまとめておきます。
使い方
一応、リポジトリにも同じような説明を書いているのですが、こちらでも書いておきます。
※ 仕様の更新などで手順に変更が加わる可能性があるため、問題が生じた場合には本家などを確認し、こちらで修正内容を報告いただけますと幸いです。
1. Rustをインストールする
まずwww.rust-lang.org/tools/installにアクセスし、最新バージョンのRustをインストールしましょう。
🐧 もしもLinuxであれば,
gcc
をインストールしましょう。Deb:
sudo apt install gcc
.
Dnf:sudo dnf install gcc
.
🍎 もしもMacOSを使っている場合は,Xcodeとデベロッパーツールを
xcode-select --install
でインストールしてください。
2. Rustlingsをインストールする
Rustlingsの演習をスムーズに進めるためのコマンドラインツールをターミナル上からインストールします。
cargo install rustlings
もしも失敗した場合には… (詳細を開く)
-
rustup update
コマンドで最新バージョンのRustか確認してください -
--locked
フラグを利用してみてください、こんな感じで→cargo install rustlings --locked
- もしくは本家のissueで報告してください
3.演習問題のダウンロード
最新バージョンの日本語の演習問題をダウンロードしましょう!
ダウンロードしたzipファイルを解凍し、好きな場所に配置してください。
※リポジトリをご確認ください。
4. 演習問題にチャレンジ!
ターミナル上で解凍したrustlings-jp-YYYYMMDD
のディレクトリに移動し、以下のコマンドを実行してください。
rustlings
もしも「rustlings
コマンドが見つからない」とターミナル上で警告が出た場合には… (詳細を開く)
もしもLinux系を使っており、Rustをパッケージマネージャーでインストールしていた場合には、
Cargoが~/.cargo/bin
にダウンロードされているものの、
~/.cargo/bin
がPATH
の環境変数に入っていない可能性があります。
解決方法としては、
- 手動で
~/.cargo/bin
をPATH
に追加する - Rustをアンインストールし、
rustup
: https://www.rust-lang.org/tools/install でインストールする
操作方法の簡単な説明
-
rustlings
:問題集を解くためのツールが起動する -
n
:次の問題に進む -
l
:問題のリスト一覧を表示する-
c
:カーソルで合わせた問題から演習を再開する
-
-
r
:問題の回答ステータスをリセットする
経緯
Rustを学んでみようと思ったきっかけは、
- 兼業先でRustを勉強している人がいた
- 勉強時間が取れそうだったので
の2点です。
実際にThe Rust Programming Language 日本語版を使って記法などについて学んでみたところ、「ライフタイム」や「ジェネリティクス」などは読むだけでは理解ができないなぁと思い演習問題を探してみました。
するとRustlingsなるリポジトリがRustの勉強には最適らしく、いくつかのブログで紹介されていました。
例.
RustlingsではRust本のチャプターごとに小問演習が用意されており、ターミナル上で動くコマンドラインツールも提供しているため、手を動かしながら勉強するにはもってこいのリポジトリでした。
またRustlingsの作者さんは寛大な方らしく、サードパーティーの演習問題の作成や翻訳についても許容してくださっていたので、「せっかくRust学ぶなら後続の人がより学びやすくなるように翻訳版を作成してみるべ」って感じで今回の翻訳バージョンを作成してみた次第です。
もしも今回の記事を読んで「自作の問題を作ってみたい!!」という方がいれば以下のドキュメントを参考にしながら、あなたのRustlingsを作ってみてください!
さいごに
今回の翻訳ではRustlings本家のコードをただ翻訳しただけだったので、
- 解説部分で分かりにくい部分を加筆
- ヒントがまだ翻訳しきれていないので加筆
- 新しい問題などを追加
などを細々と行なっていければいいなと思っています。
もしも本リポジトリで不備などあれば、リポジトリのissueやPRなどでご指摘いただければと思います。