2020-04-08 01:16:10 +07:00
|
|
|
// option2.rs
|
|
|
|
// Make me compile! Execute `rustlings hint option2` for hints
|
|
|
|
|
|
|
|
// I AM NOT DONE
|
|
|
|
|
|
|
|
fn main() {
|
|
|
|
let optional_value = Some(String::from("rustlings"));
|
2020-05-17 03:48:18 +07:00
|
|
|
// TODO: Make this an if let statement whose value is "Some" type
|
2020-04-08 01:16:10 +07:00
|
|
|
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));
|
|
|
|
}
|
|
|
|
|
2020-05-17 03:48:18 +07:00
|
|
|
// TODO: make this a while let statement - remember that vector.pop also adds another layer of Option<T>
|
2020-04-08 01:16:10 +07:00
|
|
|
// You can stack `Option<T>`'s into while let and if let
|
|
|
|
value = optional_values_vec.pop() {
|
|
|
|
println!("current value: {}", value);
|
|
|
|
}
|
|
|
|
}
|