我希望能够像以下这样在内存中表示数据表:
| USD | EUR |
-----+-----+-----+
John | 100 | 50 |
-----+-----+-----+
Tom | 300 | 200 |
-----+-----+-----+
Nick | 200 | 0 |
-----+-----+-----+
有一组已知的人,每个人都拥有一些货币。
我有以下枚举:
enum Person {
John,
Tom,
Nick
}
enum Currency {
USD,
EUR
}
我希望将这些数据编码为二维数组,并且能够通过
enum
而不是usize
来索引数组元素,这将会很棒。例如:data[Person::John][Currency::USD] = 100;
在 Rust 中,是否可以使用数组和枚举来实现这个功能?或者是否有其他数据结构可以用于此目的?
我知道 HashMap
,但它并不完全符合我的要求,因为:
HashMap
在堆上工作(使它比常规栈分配的数组慢得多)HashMap
不能保证项目存在。例如,每次我想获取某些内容时,都必须将其解包并处理None
情况,与使用普通数组相比不太方便。
这与 如何将枚举值与整数匹配? 不同,因为我不感兴趣将枚举转换为 usize
;我只是想通过枚举方便地访问数组/映射项。
HashMap
? - E net4