rust - 如何使用分隔符将 HashSet 的元素连接到字符串中

标签 rust

我可以做以下事情:

fn main() {
    let vec = vec!["first", "last"];
    println!("{}", vec.join(", "));
}

它给出了这个输出:

first, last

如果我尝试使用 join对于 map 类型,它失败了:

error[E0599]: no method named join found for type std::collections::HashSet<&str> in the current scope

最佳答案

更高效,您可以use itertools加入迭代器而不先将其收集到 Vec 中:

extern crate itertools;

use std::collections::HashSet;
use itertools::Itertools;

fn main() {
    let hash_set: HashSet<_> = ["first", "last"].iter().collect();

    // Either of
    println!("{}", hash_set.iter().join(", "));
    println!("{}", itertools::join(&hash_set, ", "));
}

关于rust - 如何使用分隔符将 HashSet 的元素连接到字符串中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47578011/

相关文章:

rust - 火箭 - 由于未实现特征,我的守卫内的使用状态失败

rust - 为什么我不能通过 `std::assert` 导入 `use` 而它适用于来自 std 的其他宏?

methods - 有什么方法可以让构建器使用创建对象的方法注册回调?

asynchronous - 同步/异步互操作 channel

c++ - 使用后将通用对象传递给Rust并传递回C++进行销毁

rust - 遍历选项的内容或特定值

regex - 在 Rust 中将正则表达式捕获转换为 HashMap?

rust - 为什么 Rust 的方法文档使用单独的构建器结构作为示例?

android - 用于Android的Tokio和Reqwest的Rust JNI异步回调

function - 如何在不使用命令行的情况下使用具有 CLAP 的 Rust crate 的功能?