有没有一种简单的方法可以在Rust中执行以下操作(来自Python)?
>>> print ("Repeat" * 4)
RepeatRepeatRepeatRepeat
我开始学习这门语言,似乎String
没有覆盖Mul
,而且我无法通过紧凑的方式在任何地方找到任何讨论(除了地图或循环)。
答案 0 :(得分:44)
str::repeat
现已推出:
fn main() {
let repeated = "Repeat".repeat(4);
println!("{}", repeated);
}
您可以使用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"));
}