Strings sind veränderbare Zeichensequenzen; Symbole (:name) sind unveränderliche, internierte Identifizierer — dasselbe Symbol ist überall im Speicher exakt dasselbe Objekt. Symbole werden als leichte, effiziente Identifizierer verwendet (besonders für Hash-Schlüssel), während Strings tatsächliche Textdaten enthalten.
Der Kernunterschied: Identität und Veränderbarkeit
.object_id == .object_id
<<
.object_id == .object_id
.frozen?
