feat: Add Option2 exercise (#290)
* added option2 * changed up the exercise, modified the help section * Update exercises/option/option2.rs Co-Authored-By: fmoko <mokou@posteo.net> * Update exercises/option/option2.rs Co-Authored-By: fmoko <mokou@posteo.net> * Update exercises/option/option2.rs Co-Authored-By: fmoko <mokou@posteo.net> Co-authored-by: fmoko <mokou@posteo.net>
This commit is contained in:
parent
71d31256a6
commit
86b5c08b9b
25
exercises/option/option2.rs
Normal file
25
exercises/option/option2.rs
Normal file
@ -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
info.toml
15
info.toml
@ -534,6 +534,21 @@ and:
|
|||||||
pattern matching
|
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]]
|
[[exercises]]
|
||||||
name = "result1"
|
name = "result1"
|
||||||
path = "exercises/error_handling/result1.rs"
|
path = "exercises/error_handling/result1.rs"
|
||||||
|
Reference in New Issue
Block a user