diff options
Diffstat (limited to 'rustlings/exercises/12_options')
| -rw-r--r-- | rustlings/exercises/12_options/options1.rs | 10 | ||||
| -rw-r--r-- | rustlings/exercises/12_options/options2.rs | 4 | ||||
| -rw-r--r-- | rustlings/exercises/12_options/options3.rs | 2 |
3 files changed, 11 insertions, 5 deletions
diff --git a/rustlings/exercises/12_options/options1.rs b/rustlings/exercises/12_options/options1.rs index d0c412a..be97952 100644 --- a/rustlings/exercises/12_options/options1.rs +++ b/rustlings/exercises/12_options/options1.rs @@ -3,7 +3,13 @@ // someone eats it all, so no ice cream is left (value 0). Return `None` if // `hour_of_day` is higher than 23. fn maybe_ice_cream(hour_of_day: u16) -> Option<u16> { - // TODO: Complete the function body. + if hour_of_day >= 24 { + return None; + } + if hour_of_day >= 22 { + return Some(0); + } + Some(5) } fn main() { @@ -18,7 +24,7 @@ mod tests { fn raw_value() { // TODO: Fix this test. How do you get the value contained in the // Option? - let ice_creams = maybe_ice_cream(12); + let ice_creams = maybe_ice_cream(12).unwrap(); assert_eq!(ice_creams, 5); // Don't change this line. } diff --git a/rustlings/exercises/12_options/options2.rs b/rustlings/exercises/12_options/options2.rs index 07c27c6..1039d61 100644 --- a/rustlings/exercises/12_options/options2.rs +++ b/rustlings/exercises/12_options/options2.rs @@ -10,7 +10,7 @@ mod tests { let optional_target = Some(target); // TODO: Make this an if-let statement whose value is `Some`. - word = optional_target { + if let Some(word) = optional_target { assert_eq!(word, target); } } @@ -29,7 +29,7 @@ mod tests { // TODO: Make this a while-let statement. Remember that `Vec::pop()` // adds another layer of `Option`. You can do nested pattern matching // in if-let and while-let statements. - integer = optional_integers.pop() { + while let Some(Some(integer)) = optional_integers.pop() { assert_eq!(integer, cursor); cursor -= 1; } diff --git a/rustlings/exercises/12_options/options3.rs b/rustlings/exercises/12_options/options3.rs index c97b1d3..aecb7a5 100644 --- a/rustlings/exercises/12_options/options3.rs +++ b/rustlings/exercises/12_options/options3.rs @@ -9,7 +9,7 @@ fn main() { // TODO: Fix the compiler error by adding something to this match statement. match optional_point { - Some(p) => println!("Coordinates are {},{}", p.x, p.y), + Some(ref p) => println!("Coordinates are {},{}", p.x, p.y), _ => panic!("No match!"), } |