回顾:矩形操作
本课属于 Coddy Rust 学习旅程的“面向对象编程”单元。第 7 课,共 61 课。
挑战
简单创建一个包含两个字段的 Rectangle 结构体:width(u32)和 height(u32)。
为 Rectangle 添加一个实现块,包含以下内容:
new:一个关联函数,接收width: u32和height: u32,并返回一个新的Rectanglearea:接收&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:接收 width 和 height 并返回 Rectangle 的关联函数
// - area:接收 &self 并返回 u32 的方法
// - scale:接收 &mut self 和 factor,并将 width 和 height 乘以 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: 输出新的面积
}面向对象编程中的所有课
自己练习: Rust 在线编译器