MST
星途 面试题库

面试题:Rust结构体一元运算符重载中的类型转换

定义一个结构体`Complex`,表示复数,包含`real`和`imag`两个`f64`类型的字段。要求重载一元正号运算符`+`,返回一个新的`Complex`实例,并且在重载过程中,如果输入的`Complex`实例的`real`值小于0,将其转换为0,同时`imag`值变为原来的2倍。
26.1万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
struct Complex {
    real: f64,
    imag: f64,
}

impl std::ops::UnaryPlus for Complex {
    type Output = Complex;
    fn +(self) -> Complex {
        let real = if self.real < 0.0 { 0.0 } else { self.real };
        let imag = self.imag * 2.0;
        Complex { real, imag }
    }
}