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.