【发布时间】:2014-11-10 03:36:10
【问题描述】:
我想编写一个函数,将提供的值切换/切换到枚举中的下一个值并在末尾环绕:
enum Direction { NORTH, SOUTH, EAST, WEST }
例如,NORTH => SOUTH、SOUTH => EAST、EAST => WEST、WEST => NORTH。
有没有比In Rust, is there a way to iterate through the values of an enum? 中描述的手动创建静态数组更简单的方法
use Direction::*;
static DIRECTIONS: [Direction; 4] = [NORTH, SOUTH, EAST, WEST];
枚举不应该被“枚举”吗?我依稀记得以前在 Rust 中看到过一个例子,但我似乎找不到它。由于 Rust 枚举更像联合/变体,我想这会使事情复杂化。
【问题讨论】:
-
应该可以不安全地进行操作:
let d : Direction = unsafe {std::mem::transmute((NORTH as u8) + 1) }; // SOUTH。使用风险自负...
标签: rust