Rust 没有内置Object类型,我认为是这样吗?如果是这样,我该如何创建一个“某物”的 HashMap,在 Java 中将是Object:
fn method1(my_hash_map: HashMap<&str, ???>) { ... } // Rust
void method1(Map<String, Object> myMap) { ... } // Java
Run Code Online (Sandbox Code Playgroud)
小智 5
如果您想要一个可以混合许多不同类型的值的 HashMap,则必须使用Any. 最直接的等价物Map<String, Object>是HashMap<String, Box<Any>>. 我之所以改用 Java,&str是String因为&str没有生命周期可能不是你想要的,而且无论如何,它String比 Rust更远离 Java String。
但是,如果您根本不关心值的类型,那么使通用更简单、更有效method1:
fn method1<T>(my_hash_map: HashMap<String, T>) { ... }
Run Code Online (Sandbox Code Playgroud)
当然,您还可以添加约束T:Trait以对值执行更有趣的操作(参见Object允许相等比较和散列)。
| 归档时间: |
|
| 查看次数: |
1237 次 |
| 最近记录: |