summaryrefslogtreecommitdiff
path: root/exercises/option
diff options
context:
space:
mode:
Diffstat (limited to 'exercises/option')
-rw-r--r--exercises/option/option2.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/exercises/option/option2.rs b/exercises/option/option2.rs
new file mode 100644
index 0000000..a55f734
--- /dev/null
+++ b/exercises/option/option2.rs
@@ -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);
+ }
+}