Skip to content

Commit

Permalink
feat: Add Option2 exercise (#290)
Browse files Browse the repository at this point in the history
* added option2

* changed up the exercise, modified the help section

* Update exercises/option/option2.rs

Co-Authored-By: fmoko <[email protected]>

* Update exercises/option/option2.rs

Co-Authored-By: fmoko <[email protected]>

* Update exercises/option/option2.rs

Co-Authored-By: fmoko <[email protected]>

Co-authored-by: fmoko <[email protected]>
  • Loading branch information
sanjaykdragon and fmoko authored Apr 7, 2020
1 parent 71d3125 commit 86b5c08
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 0 deletions.
25 changes: 25 additions & 0 deletions exercises/option/option2.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
// option2.rs
// Make me compile! Execute `rustlings hint option2` for hints

// I AM NOT DONE

fn main() {
let optional_value = Some(String::from("rustlings"));
// Make this an if let statement whose value is "Some" type
value = optional_value {
println!("the value of optional value is: {}", value);
} else {
println!("The optional value doesn't contain anything!");
}

let mut optional_values_vec: Vec<Option<i8>> = Vec::new();
for x in 1..10 {
optional_values_vec.push(Some(x));
}

// make this a while let statement - remember that vector.pop also adds another layer of Option<T>
// You can stack `Option<T>`'s into while let and if let
value = optional_values_vec.pop() {
println!("current value: {}", value);
}
}
15 changes: 15 additions & 0 deletions info.toml
Original file line number Diff line number Diff line change
Expand Up @@ -534,6 +534,21 @@ and:
pattern matching
"""

[[exercises]]
name = "option2"
path = "exercises/option/option2.rs"
mode = "compile"
hint = """
check out:
https://doc.rust-lang.org/rust-by-example/flow_control/if_let.html
https://doc.rust-lang.org/rust-by-example/flow_control/while_let.html
Remember that Options can be stacked in if let and while let.
For example: Some(Some(variable)) = variable2
"""

[[exercises]]
name = "result1"
path = "exercises/error_handling/result1.rs"
Expand Down

0 comments on commit 86b5c08

Please sign in to comment.