【发布时间】:2022-12-08 05:56:35
【问题描述】:
我试图从这个枚举中获得与 MovableDirection 相反的方向:
enum MovableDirection {
None,
Up,
Down,
Right,
Left,
}
所以MovableDirection::Up的反义词是MovableDirection::Down,MovableDirection::Left是MovableDirection::Right,等等。
我为它写了这个函数:
fn inverse_dir(dir: MovableDirection) -> MovableDirection {
match dir {
MovableDirection::Up => return MovableDirection::Down,
MovableDirection::Down => return MovableDirection::Up,
MovableDirection::Left => return MovableDirection::Right,
MovableDirection::Right => return MovableDirection::Left,
MovableDirection::None => return MovableDirection::None,
}
}
我对它的功能很满意,但我情不自禁地觉得有更好、更简洁的方法可以做到这一点。感谢您提供任何帮助,如果没有也没关系,非常感谢。
【问题讨论】:
-
您可以省略
inverse_dir内的returns 和use MovableDirection::*