From 86b5c08b9bea1576127a7c5f599f5752072c087d Mon Sep 17 00:00:00 2001 From: Sanjay K Date: Tue, 7 Apr 2020 14:16:10 -0400 Subject: [PATCH] feat: Add Option2 exercise (#290) * added option2 * changed up the exercise, modified the help section * Update exercises/option/option2.rs Co-Authored-By: fmoko * Update exercises/option/option2.rs Co-Authored-By: fmoko * Update exercises/option/option2.rs Co-Authored-By: fmoko Co-authored-by: fmoko --- exercises/option/option2.rs | 25 +++++++++++++++++++++++++ info.toml | 15 +++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 exercises/option/option2.rs diff --git a/exercises/option/option2.rs b/exercises/option/option2.rs new file mode 100644 index 0000000000..a55f734e0f --- /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> = 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 + // You can stack `Option`'s into while let and if let + value = optional_values_vec.pop() { + println!("current value: {}", value); + } +} diff --git a/info.toml b/info.toml index ec8da2c865..04a90cf0c4 100644 --- a/info.toml +++ b/info.toml @@ -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"