mirror of
https://github.com/rust-lang/rustlings
synced 2024-11-10 14:44:25 +00:00
added if3 based on: Using if in a let Statement
This commit is contained in:
parent
c5b0627180
commit
287172698a
2 changed files with 62 additions and 0 deletions
55
exercises/if/if3.rs
Normal file
55
exercises/if/if3.rs
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
// 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 {
|
||||||
|
let identifier = if animal == "crab" {
|
||||||
|
1
|
||||||
|
} else if animal == "gopher" {
|
||||||
|
2.0
|
||||||
|
} else if animal == "snake" {
|
||||||
|
3
|
||||||
|
} else {
|
||||||
|
"Unknown"
|
||||||
|
};
|
||||||
|
|
||||||
|
// DO NOT CHANGE THIS STATEMENT BELOW
|
||||||
|
let habitat = if identifier == 1 {
|
||||||
|
"Beach"
|
||||||
|
} else if identifier == 2 {
|
||||||
|
"Burrow"
|
||||||
|
} else if identifier == 3 {
|
||||||
|
"Desert"
|
||||||
|
} else {
|
||||||
|
"Unknown"
|
||||||
|
};
|
||||||
|
|
||||||
|
habitat
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn gopher_lives_in_burrow() {
|
||||||
|
assert_eq!(animal_habitat("gopher"), "Burrow")
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn snake_lives_in_desert() {
|
||||||
|
assert_eq!(animal_habitat("snake"), "Desert")
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn crab_lives_on_beach() {
|
||||||
|
assert_eq!(animal_habitat("crab"), "Beach")
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn unknown_animal() {
|
||||||
|
assert_eq!(animal_habitat("dinosaur"), "Unknown")
|
||||||
|
}
|
||||||
|
}
|
|
@ -167,6 +167,13 @@ For that first compiler error, it's important in Rust that each conditional
|
||||||
block returns the same type! To get the tests passing, you will need a couple
|
block returns the same type! To get the tests passing, you will need a couple
|
||||||
conditions checking different input values."""
|
conditions checking different input values."""
|
||||||
|
|
||||||
|
[[exercises]]
|
||||||
|
name = "if3"
|
||||||
|
path = "exercises/if/if3.rs"
|
||||||
|
mode = "test"
|
||||||
|
hint = """
|
||||||
|
In Rust, every arm of an `if` expression has to return the same type of value. Make sure the type is consistent across all arms."""
|
||||||
|
|
||||||
# QUIZ 1
|
# QUIZ 1
|
||||||
|
|
||||||
[[exercises]]
|
[[exercises]]
|
||||||
|
|
Loading…
Reference in a new issue