‚ vs. „

Im Netz gibt es zahlreiche Vergleiche zwischen single- und double quotes. Die Meisten basieren auf verschiedenen Benchmarks und stellen die Performance-Unteschiede zwischen den beiden Möglichkeiten dar. Da ich die minimalen Performance-Unterschiede für nicht relevant halte, möchte ich heute einen etwas anderen Vergleich vorstellen.

In seinem Buch Implementation Patterns stellt Kent Beck die Frage „Was will ich einem Leser über diesen Code erzählen?“ in den Mittelpunkt. Genau diese Frage sollte man sich auch bei der Wahl der Anführungszeichen stellen.

Schauen wir uns dafür zuerst einmal die Features an. Beu beiden Möglichkeiten kann man bestimmte Zeichen mit einem Backslash escapen, sie unterscheiden sich hier lediglich in den Zeichen. Während bei den single quotes nur der Backslash selbst (\\) sowie das einfache Anführungszeichen (\‘) escaped werden müssen, hat man bei den double quotes eine ganze Reihe von Möglichkeiten zur Auswahl (\n, \r, \t, \\, \$, \“, usw.).

Der wichtigste Unterschied zwischen den beiden Anführungszeichen ist aber ihr Umgang mit Variablen. Während single quotes Variablen innerhalb des Strings ignorieren und wie einen normalen String behandeln, werden die Variablen zwischen double quotes ausgewertet.

Deutlich wird, dass die double quotes wesentlich mehr Möglichkeiten bieten. Wie hilft uns das, mit dem Leser zu kommunizieren? Die begrenzten Möglichkeiten von single quotes machen sie prädestiniert dafür, bei gewöhnlichen Strings ohne Besonderheiten genutzt zu werden. Beginnt ein String mit einem single quote, ist direkt klar, dass er keine „special chars“ und keine Variableninhalte enthalten kann. Beginnt hingegen doch ein String mit einem double quote, so muss einer der folgenden Fälle vorliegen: Der String enthält

  • einen „special char“
  • eine Variable, die interpretiert werden soll
  • single quotes, die ansonsten interpretiert werden müssen.

Ich hoffe, meine Sichtweise ist deutlich geworden. Und auch wenn sie vielleicht nicht jeden überzeugen kann, so mag es doch für manche ein Denkanstoß sein, auch mal mit einem anderen Hintergrund als Performance über das Thema single- vs. double quotes nachzudenken.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *