Varianten der String-Verkettung?

8

Aus den folgenden zwei Varianten (mit oder ohne Pluszeichen dazwischen) der Zeichenfolgenliteralverkettung:

  • Was ist der bevorzugte Weg?
  • Was ist der Unterschied?
  • Wann sollte das eine oder das andere verwendet werden?
  • Sollte keiner von ihnen jemals benutzt werden, wenn ja warum?
  • Ist join bevorzugt?

Code:

%Vor%     
UlfR 08.12.2015, 14:31
quelle

2 Antworten

13

Juxtaposing funktioniert nur für String-Literale:

%Vor%

Wenn Sie mit String-Objekten arbeiten:

%Vor%

Sie müssen eine andere Methode verwenden:

%Vor%

Das + ist etwas offensichtlicher, als nur Literale nebeneinander zu setzen.

Eine Anwendung der ersten Methode besteht darin, lange Texte über mehrere Zeilen zu teilen und zu behalten Einrückung im Quelltext:

%Vor%

''join() ist die bevorzugte Methode zum Verketten von mehr Strings, zum Beispiel in einer Liste:

%Vor%     
Mike Müller 08.12.2015, 14:38
quelle
1

Die Variante ohne + wird während der Syntaxanalyse des Codes ausgeführt. Ich schätze, es wurde gemacht, damit Sie mehrere Zeilen in Ihrem Code schöner schreiben können, also können Sie:

%Vor%

Ich schätze, wenn es möglich ist, sollten Sie die non-+ Version verwenden, weil im Byte-Code nur die resultierende Zeichenkette enthalten sein wird und kein Zeichen der Verkettung übrig bleibt.

Wenn Sie + verwenden, haben Sie zwei Zeichenfolgen in Ihrem Code und führen die Verkettung zur Laufzeit aus (es sei denn, die Interpreter sind intelligent und optimieren sie, aber ich weiß nicht, ob sie das tun).

Natürlich können Sie nicht:    a = 'A'    ba = 'B' a

Welcher ist schneller? Die no-+ Version, weil sie vor dem Ausführen des Skripts ausgeführt wird.

+ vs join - & gt; Wenn Sie viele Elemente haben, wird join bevorzugt, weil es für die Verarbeitung vieler Elemente optimiert ist. Wenn Sie + verwenden, um mehrere Zeichenfolgen zu erstellen, werden viele Teilergebnisse im Prozessspeicher erstellt, während join nicht verwendet wird.

Wenn Sie nur ein paar Elemente vorstellen wollen, dann ist + besser, weil es besser lesbar ist.

    
Maciek 08.12.2015 14:41
quelle