#string #join #separator #iterator #elements #foo-bar #interspersing

join-string

将迭代器的元素连接成字符串,元素之间插入分隔符

7 个版本

0.3.0 2023年10月18日
0.2.3 2023年10月7日
0.1.1 2023年10月3日

#160 in 值格式化

Download history 9/week @ 2024-03-10 1/week @ 2024-03-17 30/week @ 2024-03-31 1/week @ 2024-04-07 4/week @ 2024-05-19 18/week @ 2024-05-26 24/week @ 2024-06-02 11/week @ 2024-06-09 30/week @ 2024-06-16 16/week @ 2024-06-23

82 个月下载量
finra-rs 中使用

MIT 许可证

18KB
317

join-string

构建状态 发布 许可证 参考

一个简单的库,用于将元素连接成字符串,在所有元素之间插入分隔符。

如果可能,这将以某种方式高效完成,这意味着如果迭代器可以廉价地克隆,则可以直接打印 Join::join() 的结果,而不需要在内存中创建一个临时的 StringJoin::join() 方法将出现在实现了 std::iter::IntoIterator 的任何事物上,这意味着所有迭代器和集合。元素和分隔符需要实现 std::fmt::Display。或者可以使用 Join::join_str() 方法来连接仅实现了 AsRef<str> 的元素。

示例

use join_string::Join;

assert_eq!(
    "foo bar baz".split_whitespace().join(", ").into_string(),
    "foo, bar, baz");

println!("{}",
    "foo bar baz".split_whitespace()
        .map(|s| s.chars().rev().join(""))
        .join(' '));
// Output: oof rab zab

您还可以将结果直接写入到 std::io::Writestd::fmt::Write,即使底层迭代器没有实现 Clone

use join_string::Join;

["foo", "bar", "baz"].join(", ").write_io(std::io::stdout())?;

let mut str = String::new();
["foo", "bar", "baz"].join(", ").write_fmt(&mut str)?;

注意

标准库已经为切片提供了类似的 std::slice::Join 特性,但没有在迭代器上,并且标准库版本总是直接返回一个新的 String。此外,还有多个其他类似的功能包,但它们的工作方式略有不同,例如对元素和分隔符类型有更多限制或总是返回一个 String

无运行时依赖