生锈是因为任务问题.控制流问题



我已经通过了前两个测试,但不知道如何获得default_to_baz

test tests::bar_for_fuzz ... ok
test tests::foo_for_fizz ... ok
test tests::default_to_baz ... FAILED 

我的代码是

pub fn fizz_if_foo(fizzish: &str) -> &str {
if fizzish == "fizz" {
"foo"
} else  {
"bar"
}
}

失败的测试用例:

#[test]
fn default_to_baz() {
assert_eq!(fizz_if_foo("literally anything"), "baz")
}

您未通过default_to_baz测试,我只是猜测您正在解决rustlings练习,测试主体是

#[test]
fn default_to_baz() {
assert_eq!(fizz_if_foo("literally anything"), "baz")
}

这用于测试输入字符串何时不等于"0";汽水";或者fuzz,所以解决方案很简单,只需添加一个else分支:


pub fn fizz_if_foo(fizzish: &str) -> &str {
if fizzish == "fizz" {
"foo"
} else if fizzish == "fuzz" {
"bar"
} else {
"baz"
}
}

或者我们可以使用match,这是一种替代方式:

pub fn fizz_if_foo(fizzish: &str) -> &str {
match fizzish {
"fizz" => "foo",
"fuzz" => "bar",
_ => "baz",
}
}

最新更新