mirror of
https://github.com/rust-lang/rustlings.git
synced 2024-12-26 23:36:30 +00:00
Merge pull request #282 from sanjaykdragon/master
feat: added option exercise
This commit is contained in:
commit
7ce42941ea
4 changed files with 47 additions and 1 deletions
2
Cargo.lock
generated
2
Cargo.lock
generated
|
@ -592,7 +592,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rustlings"
|
name = "rustlings"
|
||||||
version = "2.2.0"
|
version = "2.2.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"assert_cmd 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"assert_cmd 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
|
9
exercises/option/README.md
Normal file
9
exercises/option/README.md
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
### Option
|
||||||
|
|
||||||
|
#### Book Sections
|
||||||
|
|
||||||
|
To learn about Option<T>, check out these links:
|
||||||
|
|
||||||
|
- [Option Enum Format](https://doc.rust-lang.org/stable/book/ch10-01-syntax.html#in-enum-definitions)
|
||||||
|
- [Option Module Documentation](https://doc.rust-lang.org/std/option/)
|
||||||
|
- [Option Enum Documentation](https://doc.rust-lang.org/std/option/enum.Option.html)
|
23
exercises/option/option1.rs
Normal file
23
exercises/option/option1.rs
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
// option1.rs
|
||||||
|
// Make me compile! Execute `rustlings hint option1` for hints
|
||||||
|
|
||||||
|
// I AM NOT DONE
|
||||||
|
|
||||||
|
// you can modify anything EXCEPT for this function's sig
|
||||||
|
fn print_number(maybe_number: Option<u16>) {
|
||||||
|
println!("printing: {}", maybe_number.unwrap());
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
print_number(13);
|
||||||
|
print_number(99);
|
||||||
|
|
||||||
|
let mut numbers: [Option<u16>; 5];
|
||||||
|
for iter in 0..5 {
|
||||||
|
let number_to_add: u16 = {
|
||||||
|
((iter * 5) + 2) / (4 * 16)
|
||||||
|
};
|
||||||
|
|
||||||
|
numbers[iter] = number_to_add;
|
||||||
|
}
|
||||||
|
}
|
14
info.toml
14
info.toml
|
@ -520,6 +520,20 @@ function `unwrap_or`.
|
||||||
Or use an `if let` statement on the result of `pop()` to both destructure
|
Or use an `if let` statement on the result of `pop()` to both destructure
|
||||||
a `Some` value and only print out something if we have a value!"""
|
a `Some` value and only print out something if we have a value!"""
|
||||||
|
|
||||||
|
[[exercises]]
|
||||||
|
name = "option1"
|
||||||
|
path = "exercises/option/option1.rs"
|
||||||
|
mode = "compile"
|
||||||
|
hint = """
|
||||||
|
Check out some functions of Option:
|
||||||
|
is_some
|
||||||
|
is_none
|
||||||
|
unwrap
|
||||||
|
|
||||||
|
and:
|
||||||
|
pattern matching
|
||||||
|
"""
|
||||||
|
|
||||||
[[exercises]]
|
[[exercises]]
|
||||||
name = "result1"
|
name = "result1"
|
||||||
path = "exercises/error_handling/result1.rs"
|
path = "exercises/error_handling/result1.rs"
|
||||||
|
|
Loading…
Reference in a new issue