2014-02-09 8 views
6

Kra!
Ich möchte die Ausgabe eines meiner Dart-Skripte zu „verschönern“, etwa so:Das gleiche Zeichen mehrmals ohne Schleife drucken

----------------------------------------- 
OpenPGP signing notes from key `CD42FF00` 
----------------------------------------- 

<Paragraph> 

Und ich frage mich, ob es eine besonders einfache und/oder Weise optimiert das Drucken das gleiche Zeichen x mal in Dart. In Python, print "-" * x würde - Zeichen x mal drucken.

von this answer Lernen, für die Zwecke dieser Frage, schrieb ich den folgenden minimalen Code, der Nutzung der Kern Iterable Klasse macht:

main() { 
    // Obtained with '-'.codeUnitAt(0) 
    const int FILLER_CHAR = 45; 

    String headerTxt; 
    Iterable headerBox; 

    headerTxt = 'OpenPGP signing notes from key `CD42FF00`'; 
    headerBox = new Iterable.generate(headerTxt.length, (e) => FILLER_CHAR); 

    print(new String.fromCharCodes(headerBox)); 
    print(headerTxt); 
    print(new String.fromCharCodes(headerBox)); 
    // ... 
} 

Dies gibt die erwartete Ausgabe, aber gibt es eine bessere Weg in Dart, um ein Zeichen (oder String) x mal zu drucken? In meinem Beispiel möchte ich das - Zeichen headerTxt.length Mal drucken.

Vielen Dank.

Antwort

6

Ich benutze diesen Weg.

void main() { 
    print(new List.filled(40, "-").join()); 
} 

Also, Ihr Fall.

main() { 
    const String FILLER = "-"; 

    String headerTxt; 
    String headerBox; 

    headerTxt = 'OpenPGP signing notes from key `CD42FF00`'; 
    headerBox = new List.filled(headerTxt.length, FILLER).join(); 

    print(headerBox); 
    print(headerTxt); 
    print(headerBox); 
    // ... 
} 

Ausgang:

----------------------------------------- 
OpenPGP signing notes from key `CD42FF00` 
----------------------------------------- 
+0

Woah, auf jeden Fall besser lesbar und elegant! Ich glaube nicht, dass es einen optimierteren Weg geben muss, um 'List's zu verwenden, wie Sie es getan haben. – Diti