有没有一种简单的方法可以在Rust中执行以下操作(来自Python)?
>>> print ("Repeat" * 4)
RepeatRepeatRepeatRepeat
我开始学习这门语言了,它似乎String没有覆盖Mul,而且我无法在任何地方找到任何讨论这样做的紧凑方式(除了地图或循环).
She*_*ter 52
str::repeat 现在可用:
fn main() {
let repeated = "Repeat".repeat(4);
println!("{}", repeated);
}
Run Code Online (Sandbox Code Playgroud)
你可以使用iter::repeat:
use std::iter;
fn main() {
let repeated: String = iter::repeat("Repeat").take(4).collect();
println!("{}", repeated);
}
Run Code Online (Sandbox Code Playgroud)
这也具有更通用的好处 - 它创建了一个可克隆的任何类型的无限重复迭代器.
这个不使用Iterator::map,Iterator::fold而是:
fn main() {
println!("{:?}", (1..5).fold(String::new(), |b, _| b + "Repeat"));
}
Run Code Online (Sandbox Code Playgroud)