< 返回博客

习题集(14/5/2018)

套路小迷糊 发表于

小妮同学在学习Rust的过程中自定义了一个关于二维向量的构造类型,下面是她写的程序片段,她的命名符合规范吗?请为她调整程序,使得程序正常运行。并为其实现减法、自加、自减的运算符重载。

struct vec2(u32, u32);

impl vec2 {
    fn NEW<T: Into<u32>>(X: T, Y: T) -> Self {
        vec2(X.into(), Y.into())
    }
}

impl Add for vec2 {
    type Output = vec2;
    fn add(self, OtHeR: vec2) -> vec2 {
        vec2(self.0 + OtHeR.0, self.1 + OtHeR.1)
    }
}

fn main() {
    let foo = vec2::NEW(0, 2);
    println!("{}", foo);
}

要求

  1. 请不要使用 allow 来消除不规范的命名警告
  2. 尽可能利用宏来完成运算符重载的部分
  3. 鼓励使用 Clippy 工具

原文链接上一题

评论区

还没有评论

共 0 评论, 共 0 页