相关疑难解决方法(0)

我应该使用枚举来模拟多态性还是使用Box <trait>中的trait?

使用enum Axes来限制CoordinateQuaternion

#[derive(Clone)]
pub enum Axes {
    Coordinate {x: f64, y: f64, z: f64, reserve: Vec<f64>,},
    Quaternion {x: f64, y: f64, z: f64},
}

impl Axes {
    pub fn shift(&mut self, Sample: &Axes) -> () {
        let Dup: Axes = self.clone();
        match Dup {
            Axes::Coordinate {x, y, z, reserve} => {
                match &Sample {
                    Axes::Coordinate {x, y, z, reserve} => {
                        *self = Axes::Coordinate {x: *x, y: *y, z: *z, reserve: reserve.to_vec()};
                    }
                    _ …
Run Code Online (Sandbox Code Playgroud)

polymorphism enums rust

6
推荐指数
2
解决办法
605
查看次数

如何匹配泛型参数的具体类型?

我有一个带有类型参数的函数,U它返回一个Option<U>. U受 trait 的约束num::Num。这样,U可以是usizeu8u16u32u64u128isize,等。

我如何匹配U?例如,

match U {
    u8 => {},
    u16 => {}
    _ => {}
}
Run Code Online (Sandbox Code Playgroud)

types match rust

5
推荐指数
1
解决办法
3532
查看次数

标签 统计

rust ×2

enums ×1

match ×1

polymorphism ×1

types ×1