用整数乘法重复字符串

时间:2015-07-04 03:38:08

标签: rust

有没有一种简单的方法可以在Rust中执行以下操作(来自Python)?

>>> print ("Repeat" * 4) RepeatRepeatRepeatRepeat

我开始学习这门语言,似乎String没有覆盖Mul,而且我无法通过紧凑的方式在任何地方找到任何讨论(除了地图或循环)。

2 个答案:

答案 0 :(得分:44)

Rust 1.16 +

str::repeat现已推出:

fn main() {
    let repeated = "Repeat".repeat(4);
    println!("{}", repeated);
}

Rust 1.0 +

您可以使用iter::repeat

use std::iter;

fn main() {
    let repeated: String = iter::repeat("Repeat").take(4).collect();
    println!("{}", repeated);
}

这也具有更通用的好处 - 它创建了一个可克隆的无限重复迭代器。

答案 1 :(得分:4)

这个不使用Iterator::map而是Iterator::fold代替:

fn main() {
    println!("{:?}", (1..5).fold(String::new(), |b, _| b + "Repeat"));
}