mirror of
https://github.com/notohh/rustlings.git
synced 2024-11-26 07:14:17 -05:00
feat: Add if2 exercise
This commit is contained in:
parent
ebfe76cdb6
commit
1da84b5f7c
2 changed files with 45 additions and 0 deletions
36
exercises/if/if2.rs
Normal file
36
exercises/if/if2.rs
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
// if2.rs
|
||||||
|
|
||||||
|
// Step 1: Make me compile!
|
||||||
|
// Step 2: Get the bar_for_fuzz and default_to_baz tests passing!
|
||||||
|
// Execute the command `rustlings hint if2` if you want a hint :)
|
||||||
|
|
||||||
|
// I AM NOT DONE
|
||||||
|
|
||||||
|
pub fn fizz_if_foo(fizzish: &str) -> &str {
|
||||||
|
if fizzish == "fizz" {
|
||||||
|
"foo"
|
||||||
|
} else {
|
||||||
|
1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// No test changes needed!
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn foo_for_fizz() {
|
||||||
|
assert_eq!(fizz_if_foo("fizz"), "foo")
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn bar_for_fuzz() {
|
||||||
|
assert_eq!(fizz_if_foo("fuzz"), "bar")
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn default_to_baz() {
|
||||||
|
assert_eq!(fizz_if_foo("literally anything"), "baz")
|
||||||
|
}
|
||||||
|
}
|
|
@ -87,6 +87,15 @@ Remember in Rust that:
|
||||||
- `if`/`else` conditionals are expressions
|
- `if`/`else` conditionals are expressions
|
||||||
- Each condition is followed by a `{}` block."""
|
- Each condition is followed by a `{}` block."""
|
||||||
|
|
||||||
|
[[exercises]]
|
||||||
|
name = "if2"
|
||||||
|
path = "exercises/if/if2.rs"
|
||||||
|
mode = "test"
|
||||||
|
hint = """
|
||||||
|
For that first compiler error, it's important in Rust that each conditional
|
||||||
|
block return the same type! To get the tests passing, you will need a couple
|
||||||
|
conditions checking different input values."""
|
||||||
|
|
||||||
# FUNCTIONS
|
# FUNCTIONS
|
||||||
|
|
||||||
[[exercises]]
|
[[exercises]]
|
||||||
|
|
Loading…
Reference in a new issue