Wie wählt man in Ruby, ob ein Symbol oder eine Zeichenfolge in einem bestimmten Szenario verwendet werden soll? - Rubin

Ich sehe diese Antwort auf verschiedenen Websites:

Wenn der Inhalt (die Zeichenfolge) des Objekts ist wichtig, verwenden Sie eine Zeichenfolge Wenn die Identität des Objekts wichtig ist, Verwende ein Symbol

Aber was bedeutet das eigentlich? Bitte geben Sie mir eine Erklärung, die sogar ein Laie verstehen kann.

Antworten:

5 für die Antwort № 1
a = :foo
b = :foo

a und b verweist auf dasselbe Objekt im Speicher (gleiche Identität)

a.object_id # => 898908
b.object_id # => 898908

Strings verhalten sich anders

a = "foo"
b = "foo"

a.object_id # => 70127643805220
b.object_id # => 70127643805200

Also, Sie verwenden Strings, um Daten zu speichern und Manipulationen an Daten durchzuführen (ersetzen Sie Zeichen oder whatnot) und Sie verwenden Symbole, um Dinge zu benennen (Schlüssel in einem Hash oder etwas). Siehe auch diese Antwort für mehr Anwendungsfälle für das Symbol.


Am beliebtesten