1.7. Konwersja między łańcuchami a symbolami

Problem

Mając symbol języka Ruby, należy uzyskać reprezentujący go łańcuch, lub vice versa — zidentyfikować symbol odpowiadający danemu łańcuchowi.

Rozwiązanie

Konwersję symbolu na odpowiadający mu łańcuch realizuje metoda Symbol#to_s lub metoda Symbol#id2name, dla której to_s jest aliasem.

:a_symbol.to_s                     # => "a_symbol"
:InnySymbol.id2name                # => "InnySymbol"
:"Jeszcze jeden symbol!".to_s      # => "Jeszcze jeden symbol!"

Odwołanie do symbolu następuje zwykle przez jego nazwę. Aby uzyskać symbol reprezentowany przez łańcuch w kodzie programu, należy posłużyć się metodą String.intern:

:dodecahedron.object_id # => 4565262 symbol_name = "dodecahedron" symbol_name.intern # => :dodecahedron symbol_name.intern.object_id ...

Get Ruby. Receptury now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.