Avatar ·

能否在Rust中更简洁、声明式地初始化HashMap?

大家好!我刚开始学习Rust,遇到了一个问题:我需要创建一个包含几个预定义键值对的HashMap。我现在写的代码看起来非常冗长: ```rust use std::collections::HashMap; let mut scores = HashMap::new(); scores.insert(String::from("Blue"), 10); scores.insert(String::from("Yellow"), 50); scores.insert(String::from("Red"), 25); ``` 三个键值对就占了6行!在Python里,我可以一行写成 `{"Blue": 10, "Yellow": 50, "Red": 25}`。在JavaScript里,也是 `{Blue: 10, Yellow: 50, Red: 25}`。但在Rust里,却要写一堆样板代码。 我试过用 `vec![]` 宏然后 `.into_iter().collect()`,但这感觉不太对。有没有内置的 `hashmap!{}` 宏或其他方法能让初始化更简洁、声明式?也许有某个crate能实现这个?或者我只是没有用对惯用的Rust写法? 请指教,谢谢!