私は2つの文字列を持っています。それらは以下に関して異なった振る舞いをしますto_sym
:
key = "awesome123xyz"
key.to_sym #=> :awesome123xyz
object.id #=> "589d62c016bd4d0005bccc15"
object.id.to_sym #=> :"589d62c016bd4d0005bccc15"
なぜ私にはobject.id.to_sym
文字列のように見えるものがあるのですか?
:"589d62c016bd4d0005bccc15"
このようなシンボルではなく?:
:589d62c016bd4d0005bccc15`
Ruby:589d62c016bd4d0005bccc15
では有効なSymbolリテラルではないからです。整数または整数自体で始まる文字列がSymbolリテラルに変換されている場合、常に次の形式になります。
'23'.to_sym
#=> :"23"
23.to_s.to_sym
#=> :"23"
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加