Small exercises to get you used to reading and writing Rust code. Includes practice reading and
responding to compiler messages!
This repo is very much the smallest thing that could possibly work 😃
To do these exercises
Thanks to btbytes’ prlinks, you
can now click on the links below to load the exercises in the rust playground!
There are infinite correct answers— the exercises are sometimes left very open-ended. Scroll down
in the playground to find comments that have hints.
To do these exercises in your local environment and execute them online afterwards:
clone the repo to your local environment:
git clone git@github.com:rustlings/rustlings.git
edit the rustling that you want, per example
variables/variables1.rs
run
cargo run
in the project folderyou will notice that you README file was modified and now it has the new content of the file that you edited
click in the new URL in the README and you will redirect to the rust playground and the whole file content it will be loaded
to execute in the rust playground, just click on
run
Need help?
If you need more help or would like to compare solutions, you can ask in #rust-beginners on
irc.mozilla.org, the
user forum, or the subreddit. If an
exercise could be improved in any way, please create an
issue or submit a pull request!
Variable bindings
Relevant chapter in The Rust Programming Language
Functions
Relevant chapter in The Rust Programming Language
Primitive types
Relevant chapter in The Rust Programming Language
Tests
Going out of order from the book to cover tests— many of the following exercises will ask you to
make tests pass!
Relevant chapter in The Rust Programming Language
If
Relevant chapter in The Rust Programming Language
Strings
Relevant chapter in The Rust Programming Language
Move semantics
These exercises are adapted from pnkfelix’s Rust Tutorial — thank you Felix!!!
Relevant chapters in the book:
Note that the exercises in this section may look similar to each other but they are subtly
different 😃
Modules
Relevant chapter in The Rust Programming Language
Macros
Check out:
Error Handling
The Error
Handling
and Generics sections are
relevant.
Standard library types
Arc
The Concurrency section
is relevant.
Iterators
Do not adjust your monitors— iterators 1 and 2 are indeed missing. Iterator 3 is a bit challenging
so we’re leaving space for some exercises to lead up to it!
Check out the Iterators chapter of the book and the Iterator docs.
Threads
See the Dining Philosophers
example and the
Concurrency Chapter from the
book.
Uncategorized
A few exercises based on things I’ve encountered or had trouble with getting used to.
To help with this repo/TODO list
File issues for problems or suggestions!
Contribute more exercises! Anything that took you time to get used to, or that you had trouble
with, or that deserves practice would be a good exercise!How could the process of doing these exercises work better? This is an open-ended question 😃 Are
the playground links good enough? Are there ways that we could make going to the next exercise
easier without forking the playground??