fn speed(start: u32, end: u32, time_elapsed: u32) -> u32 { // TODO: `time_elapsed`가 0일 경우 사용자 지정 메시지와 함께 panic을 일으키세요. (end - start) / time_elapsed} 0으로 나누기(divide by zero) 오류는 흔히 발생하는 프로그래밍 오류로, 적절히 처리할 필요가 있다. 러스트에서는 오류를 처리하는 한 방법으로 panic을 제공한다.panic은 말 그대로 프로그램이 패닉에 빠진 상황을 의미한다. 즉, 복구 불가능한 오류(unrecoverable error)가 발생한 경우 panic이 발생한다. 개발자 역시 panic이 발생하도록 코드를 작성할 수 있는데, panic! 매크로를 사용한다. ..
/// `n`이 짝수이면 `12`를,/// `n`을 3으로 나눌 수 있으면 `13`을,/// 아니면 `17`을 반환하기fn magic_number(n: u32) -> u32 { todo!()} 러스트에서 표현식(expression)은 값을 반환하는 반면, 문(statement)는 값을 반환하지 않는다. 일반적으로 statement는 세미 콜론(;)으로 마친다. 함수 본문에서 명시적으로 return을 사용하지 않아도, 그것이 표현식이라면 함수의 반환 값으로 처리된다. 따라서 다음과 같은 작성이 가능하다. if문 역시 표현식이기 때문이다. 정답:fn magic_number(n: u32) -> u32 { if n % 2 == 0 { 12 } else if n % 3 == 0 { ..
/// Given the start and end points of a journey, and the time it took to complete it,/// calculate the average speed.pub fn speed(start: u32, end: u32, time_elapsed: u32) -> u32 { //TODO: `distance`라는 이름의 변수를 정의하고, 테스트를 통과할 수 있도록 올바른 값을 지정하기 //`distance` 변수의 타입을 명시해야 할 필요가 있을까요? 그렇다면 이유는 무엇일까요? // Don't change the line below distance / time_elapsed} distance 변수는 현재 정의되지 않은 채 사용되고 있으므..
fn compute(a: u32, b: u32) -> u32 { // TODO: 컴파일러 오류를 수정하고 테스트가 통과할 수 있도록 아래 줄을 수정 let multiplier: u8 = 4; a + b * multiplier}#[cfg(test)]mod tests { use crate::compute; #[test] fn case() { assert_eq!(compute(1, 2), 9); }} 러스트는 정적 타입 언어(statically typed language)로, 타입 강제 변환에 엄격하다. 위의 코드에서도 u8 타입의 multiplier 변수를 u32 타입의 b와 곱하려고 시도하는데, 이는 러스트 컴파일러가 강제로 타입을 변환하지 않기 때문에 m..
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로 지정해야 한다. 정답..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.