用整数乘法重复字符串

Ach*_*ave 29 rust

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

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

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

She*_*ter 52

Rust 1.16+

str::repeat 现在可用:

fn main() {
    let repeated = "Repeat".repeat(4);
    println!("{}", repeated);
}
Run Code Online (Sandbox Code Playgroud)

Rust 1.0+

你可以使用iter::repeat:

use std::iter;

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

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

  • 我喜欢生锈 16 方式! (2认同)

bas*_*gnr 5

这个不使用Iterator::mapIterator::fold而是:

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