Rust 没有内置的 Object
类型吗?如果是这样,我该如何创建一个在 Java 中是 Object
的“东西”的 HashMap:
fn method1(my_hash_map: HashMap<&str, ???>) { ... } // Rust
void method1(Map<String, Object> myMap) { ... } // Java
最佳答案
如果你想要一个可以混合多种不同类型的值的 HashMap,你将不得不使用 Any
.最直接相当于Map<String, Object>
将是 HashMap<String, Box<Any>>
.我换了&str
至 String
因为&str
没有生命周期可能不是您想要的,并且在任何情况下甚至会进一步从 Java 中删除 String
比 Rust 的 String
已经是了。
但是,如果您只是不关心值的类型,则生成 method1
会更简单、更高效。通用:
fn method1<T>(my_hash_map: HashMap<String, T>) { ... }
当然也可以加上约束T:Trait
用值做更多有趣的事情(参见 Object
允许相等比较和散列)。
关于rust - Rust 中的内置对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26945853/