In Ruby gibt es einen Unterschied zwischen einfachen ''
und doppelten Anführungszeichen ""
in Bezug darauf, was als Zeichenfolge ausgewertet werden soll.
Zunächst möchte ich klarstellen, dass in der Literalform eines Strings alles, was zwischen einfachen oder doppelten Anführungszeichen steht, als String-Objekt ausgewertet wird, das eine Instanz der Ruby String-Klasse ist.
Daher 'stackoverflow'
und "stackoverflow"
beide bewerten Instanzen der String-Klasse ohne Unterschied .
Der Unterschied
Der wesentliche Unterschied zwischen den beiden wörtlichen Formen von Zeichenfolgen (einfache oder doppelte Anführungszeichen) besteht darin, dass doppelte Anführungszeichen Escape-Sequenzen zulassen, einfache Anführungszeichen jedoch nicht!
Ein durch einfache Anführungszeichen erstelltes Zeichenfolgenliteral unterstützt keine Zeichenfolgeninterpollation und entgeht keinen Sequenzen.
Ein gutes Beispiel ist:
"\n" # will be interpreted as a new line
wohingegen
'\n' # will display the actual escape sequence to the user
Das Interpolieren mit einfachen Anführungszeichen funktioniert überhaupt nicht:
'#{Time.now}'
=> "\#{Time.now}" # which is not what you want..
Beste Übung
Wie die meisten Ruby Linters empfehlen, verwenden Sie für Ihre Zeichenfolgen einfache Anführungszeichen und bei Interpolations- / Escape-Sequenzen die doppelten.