TODO: 테스트가 통과할 수 있도록 함수 시그니처를 수정하기
fn compute(a, b) -> u32 {
// Don't touch the function body.
a + b * 2
}
#[cfg(test)]
mod tests {
use crate::compute;
#[test]
fn case() {
assert_eq!(compute(1, 2), 5);
}
}
테스트에서는 compute(1,2)의 결과가 5와 같은지 검사하고 있다.
다만 바로 컴파일되지는 않는데, 이는 함수 시그니처에서 매개변수로 a와 b를 넘기고 있지만 무슨 타입인지 명시하지 않고 있기 때문이다.
a와 b를 연산에 사용하고 바로 반환하므로, 타입은 반환값과 동일하게 u32로 지정해야 한다.
정답:
fn compute(a: u32, b: u32) -> u32 {
// Don't touch the function body.
a + b * 2
}