rust - Rust 中的内置对象

标签 rust

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>> .我换了&strString因为&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/

相关文章:

rust - 移入封闭的结构从外部借用了引用

scala - 不能将 futures-util crate 与 Actix 一起使用,因为特征 Future 未实现

rust - 在Rust中将字符串与字符串文字匹配

rust - 在 Rust 中使用 unwrap_or_else 进行错误处理

rust - 在单个表达式中创建、初始化和运行的惯用方式

Rust - 不能在测试中使用枚举/不能在子模块上使用类型

rust - 我可以在操作系统开发中使用 Rust 而不是 C++吗

rust - 如何创建动态索引来获取元组的值?

闭包环境中的 Rust 生命周期

enums - Rust:将借用的结构传递给借用的枚举?