요약 - 사각형 동작
Coddy Rust 여정의 Object Oriented Programming 섹션에 포함된 레슨 — 61개 중 7번째.
챌린지
쉬움두 개의 필드 width (u32)와 height (u32)를 가진 Rectangle 구조체를 생성하세요.
Rectangle에 대해 다음을 포함하는 구현 블록을 추가하세요:
new—width: u32와height: u32를 매개변수로 받아 새로운Rectangle을 반환하는 연관 함수area—&self를 매개변수로 받아 면적을u32로 반환하는 메서드scale—&mut self와factor: u32를 매개변수로 받아 너비와 높이 모두에 해당 인수를 곱하는 메서드
세 개의 입력을 받게 됩니다:
- 첫 번째 줄: 너비 (u32)
- 두 번째 줄: 높이 (u32)
- 세 번째 줄: 배율 인수 (u32)
제공된 치수를 사용하여 Rectangle::new로 가변 Rectangle을 생성하세요. 초기 면적을 출력한 다음, 주어진 인수로 사각형의 크기를 조정하고 새로운 면적을 출력하세요.
예상 출력 형식:
{initial_area}
{scaled_area}직접 해보기
use std::io;
// TODO: 여기에 Rectangle 구조체를 정의하세요
// TODO: 다음을 포함하는 Rectangle의 구현 블록을 추가하세요:
// - new: 너비와 높이를 받아 Rectangle을 반환하는 연관 함수
// - area: &self를 받아 u32를 반환하는 메서드
// - scale: &mut self와 factor를 받아 너비와 높이를 곱하는 메서드
fn main() {
let mut input = String::new();
// 너비 읽기
io::stdin().read_line(&mut input).expect("Failed to read line");
let width: u32 = input.trim().parse().expect("Invalid number");
input.clear();
// 높이 읽기
io::stdin().read_line(&mut input).expect("Failed to read line");
let height: u32 = input.trim().parse().expect("Invalid number");
input.clear();
// 배율 읽기
io::stdin().read_line(&mut input).expect("Failed to read line");
let factor: u32 = input.trim().parse().expect("Invalid number");
// TODO: Rectangle::new를 사용하여 가변 Rectangle 생성
// TODO: 초기 면적 출력
// TODO: factor만큼 사각형의 크기 조정
// TODO: 새로운 면적 출력
}