Ce face String::repeat
repeat(n) lipește textul de n ori și returnează un String nou. Este definită pe str, deci se apelează la fel pe un literal ("-".repeat(20)) și pe un String. Cu n = 0 rezultatul este gol.
Este practică pentru linii de separare, indentare sau bare simple în terminal. Dacă rezultatul ar depăși memoria adresabilă, programul se oprește cu panică.
Parametri
| Parametru | Descriere |
|---|---|
n |
De câte ori se repetă textul. |
Ce returnează
Un String nou.
Exemple
Exemplul 1: Linii de separare
fn main() {
let titlu = "Raport vânzări";
let linie = "=".repeat(titlu.chars().count());
println!("{linie}\n{titlu}\n{linie}");
println!("[{}]", "ab".repeat(0));
}
Rezultat
==============
Raport vânzări
==============
[]
Exemplul 2: Grafic de bare din note
fn main() {
let note = [("Ana", 10), ("Radu", 7), ("Ioana", 9)];
for (nume, nota) in note {
println!("{nume:<6} {} {nota}", "█".repeat(nota));
}
}
Rezultat
Ana ██████████ 10
Radu ███████ 7
Ioana █████████ 9
Greșeli frecvente
- Calculezi lungimea liniei cu
len()pe un titlu cu diacritice și linia iese prea lungă. Foloseștechars().count().
Comenzi înrudite
String::push_str: Adaugă la finalul unui String un text (push_str) sau un singur caracter (push).String::new: Creează un String gol, fără să aloce memorie; textul se adaugă apoi cu push_str sau push.String::len: Lungimea textului în OCTEȚI (nu în litere) și verificarea dacă textul e gol. Pentru litere: chars().count().