Подтвердить что ты не робот

Повторить строку с целым умножением

Есть ли простой способ сделать следующее (из Python) в Rust?

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

Я начинаю изучать язык, и кажется, что String не переопределяет Mul, и я не могу найти нигде нигде компактного способа сделать это (кроме карты или цикла).

4b9b3361

Ответ 1

Начиная с Rust 1.16, str::repeat доступен:

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

До Rust 1.16 вы можете использовать iter::repeat:

use std::iter;

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

Это также может быть более общим - оно создает бесконечно повторяющийся итератор любого типа, который является клонируемым.

Ответ 2

В этом случае не используются map, но iterator и fold

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