summaryrefslogtreecommitdiff
path: root/exercises/03_if
diff options
context:
space:
mode:
Diffstat (limited to 'exercises/03_if')
-rw-r--r--exercises/03_if/if1.rs15
-rw-r--r--exercises/03_if/if2.rs26
-rw-r--r--exercises/03_if/if3.rs21
3 files changed, 28 insertions, 34 deletions
diff --git a/exercises/03_if/if1.rs b/exercises/03_if/if1.rs
index 4734d78..e5a3c5a 100644
--- a/exercises/03_if/if1.rs
+++ b/exercises/03_if/if1.rs
@@ -1,16 +1,15 @@
-// if1.rs
-//
-// Execute `rustlings hint if1` or use the `hint` watch subcommand for a hint.
-
-// I AM NOT DONE
-
-pub fn bigger(a: i32, b: i32) -> i32 {
- // Complete this function to return the bigger number!
+fn bigger(a: i32, b: i32) -> i32 {
+ // TODO: Complete this function to return the bigger number!
+ // If both numbers are equal, any of them can be returned.
// Do not use:
// - another function call
// - additional variables
}
+fn main() {
+ // You can optionally experiment here.
+}
+
// Don't mind this for now :)
#[cfg(test)]
mod tests {
diff --git a/exercises/03_if/if2.rs b/exercises/03_if/if2.rs
index f512f13..593a77a 100644
--- a/exercises/03_if/if2.rs
+++ b/exercises/03_if/if2.rs
@@ -1,13 +1,5 @@
-// if2.rs
-//
-// Step 1: Make me compile!
-// Step 2: Get the bar_for_fuzz and default_to_baz tests passing!
-//
-// Execute `rustlings hint if2` or use the `hint` watch subcommand for a hint.
-
-// I AM NOT DONE
-
-pub fn foo_if_fizz(fizzish: &str) -> &str {
+// TODO: Fix the compiler error on this function.
+fn foo_if_fizz(fizzish: &str) -> &str {
if fizzish == "fizz" {
"foo"
} else {
@@ -15,23 +7,29 @@ pub fn foo_if_fizz(fizzish: &str) -> &str {
}
}
-// No test changes needed!
+fn main() {
+ // You can optionally experiment here.
+}
+
+// TODO: Read the tests to understand the desired behavior.
+// Make all tests pass without changing them.
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn foo_for_fizz() {
- assert_eq!(foo_if_fizz("fizz"), "foo")
+ // This means that calling `foo_if_fizz` with the argument "fizz" should return "foo".
+ assert_eq!(foo_if_fizz("fizz"), "foo");
}
#[test]
fn bar_for_fuzz() {
- assert_eq!(foo_if_fizz("fuzz"), "bar")
+ assert_eq!(foo_if_fizz("fuzz"), "bar");
}
#[test]
fn default_to_baz() {
- assert_eq!(foo_if_fizz("literally anything"), "baz")
+ assert_eq!(foo_if_fizz("literally anything"), "baz");
}
}
diff --git a/exercises/03_if/if3.rs b/exercises/03_if/if3.rs
index 1696274..89164eb 100644
--- a/exercises/03_if/if3.rs
+++ b/exercises/03_if/if3.rs
@@ -1,10 +1,5 @@
-// if3.rs
-//
-// Execute `rustlings hint if3` or use the `hint` watch subcommand for a hint.
-
-// I AM NOT DONE
-
-pub fn animal_habitat(animal: &str) -> &'static str {
+fn animal_habitat(animal: &str) -> &str {
+ // TODO: Fix the compiler error in the statement below.
let identifier = if animal == "crab" {
1
} else if animal == "gopher" {
@@ -15,8 +10,8 @@ pub fn animal_habitat(animal: &str) -> &'static str {
"Unknown"
};
- // DO NOT CHANGE THIS STATEMENT BELOW
- let habitat = if identifier == 1 {
+ // Don't change the expression below!
+ if identifier == 1 {
"Beach"
} else if identifier == 2 {
"Burrow"
@@ -24,12 +19,14 @@ pub fn animal_habitat(animal: &str) -> &'static str {
"Desert"
} else {
"Unknown"
- };
+ }
+}
- habitat
+fn main() {
+ // You can optionally experiment here.
}
-// No test changes needed.
+// Don't change the tests!
#[cfg(test)]
mod tests {
use super::*;