enums - 如何返回特定索引处的枚举字符串?
问题描述
实现这一目标的最简单方法是什么?
enum E {
A,
B,
C,
}
// Should return "A" for 0, "B" for 1 and "C" for 2
fn convert(i: u32) -> str {
// ???
}
解决方案
您不能返回 a str
,但可以返回 a &str
。结合如何将枚举值与整数匹配?并将枚举作为字符串:
#[macro_use]
extern crate strum_macros;
extern crate strum;
use strum::IntoEnumIterator;
#[derive(EnumIter, AsRefStr)]
enum E {
A,
B,
C,
}
fn main() {
let e = E::iter().nth(2);
assert_eq!(e.as_ref().map(|e| e.as_ref()), Some("C"));
}
推荐阅读
- javascript - 使用浏览器后退按钮后 Select2 Dropdown 不起作用
- ruby-on-rails - 使用枚举的基于角色的身份验证
- docker - 如何修改我的 docker-compose.yml 文件,以便可以访问容器中的特定文件?
- python - ID 确认系统 Def()。许多变量的问题,f.read()
- python - 如何使用多处理管理范围
- ios - Swift:viewDidLoad() 在内部正确运行方法,但在方法之后不会运行代码?
- f# - 如何确定两种类型之间的单一属性差异?
- python - 如何正确解码 RTF 中的十六进制值
- intellij-idea - Intellij IDEA ide 未将战争文件部署到 JBOSS 7
- react-native - 不要在特定页面上显示侧边栏