Todo부호없는 정수인 price와 quantity 필드를 보유한 Order라는 이름의 struct를 정의하세요.is_available이라는 메서드가 있어야 하며, quantity가 0보다 크면 true를, 작으면 false를 반환합니다.Struct풀이:struct Order { price: u32, quantity: u32,}impl Order { fn is_available(self) -> bool { if(self.quantity > 0) { true } else { false } }} 러스트의 구조체는 다른 언어에서의 구조체와 유사하다.서로 다른 타입의 필드를 구조체를 통해 묶을 수 있다. 구조체를 정의할 때는 : 순으로 작..
// TODO: 이 섹션에서 배운 내용을 바탕으로 `todo!()`를 변환 후의 올바른 값을 사용해 수정하세요.#[cfg(test)]mod tests { #[test] fn u16_to_u32() { let v: u32 = todo!(); assert_eq!(47u16 as u32, v); } #[test] fn u8_to_i8() { // The compiler is smart enough to know that the value 255 cannot fit // inside an i8, so it'll emit a hard error. We intentionally disable // this guardrail t..
pub fn factorial(n: u32) -> u32 { let mut result = 1; for i in 1..=n { // overflowing과 wrapping을 사용하기 보다는 // saturating multiliaction을 사용해 u32의 최댓값에서 멈추도록 하세요 result *= i; } result} 2.8에서 오버플로우 문제를 해결하기 위해 dev profile의 overflow-checks를 false로 설정했는데, 이는 전체 프로그램에 영향을 미치게 되므로 썩 좋은 방법은 아니다. 산술 연산마다 제공되는 wrapping 메서드를 이용할 수 있다. 혹은 saturating 메서드를 사용할 수 있는데, 래핑처럼 값을 넘겨..
// overflow를 래핑(wrap around)하기 위해 `dev` 프로필을 커스터마이징하세요.// 올바른 문법을 찾아내기 위해 Cargo의 문서를 확인하세요.// https://doc.rust-lang.org/cargo/reference/profiles.html//// 나중에 설명하겠지만, 커스터마이징은 현재 exercise의 `Cargo.toml`이 아닌 // 리포지토리 루트의 `Cargo.toml`에 해야 합니다.pub fn factorial(n: u32) -> u32 { let mut result = 1; for i in 1..=n { result *= i; } result} test에는 다음과 같은 내용이 추가되었다.#[test] fn twentiet..
정답:// for문을 이용해 factorial을 재작성하세요.pub fn factorial(n: u32) -> u32 { let mut result = 1; let mut fac = n; if n == 0 || n == 1 { result = 1; } else { for i in 2..=fac { result *= i; } } result} while과 마찬가지로 가변 변수 result와 fac을 정의한 후, 2부터 fac까지 범위를 지정하고 i 변수로 추출하여 result에 차례로 곱해 팩토리얼을 계산했다. 만약 n이 5였다면 fac 역시 5가 된다. for문에서는 2..=fac 에 의해 2, 3, 4, 5가 차례..
// 팩토리얼 함수를 while 루프를 이용해 재작성하세요.pub fn factorial(n: u32) -> u32 { // The `todo!()` 매크로는 자리표시자(placeholer)로, // "나중에 돌아와서 처리할게요"로 컴파일러가 해석합니다. // 실행하면 panic이 발생합니다. todo!()} 정답:pub fn factorial(n: u32) -> u32 { let mut result = 1; let mut fac = n; if n == 0 || n == 1 { 1 } else { while fac > 1 { result = result * fac; fac = fac - 1; ..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.