为什么to_sym表现不同?

时间:2017-02-10 07:08:27

标签: ruby

我有两个字符串。它们在to_sym

方面的表现不同
key = "awesome123xyz"
key.to_sym #=> :awesome123xyz

object.id #=> "589d62c016bd4d0005bccc15"
object.id.to_sym #=> :"589d62c016bd4d0005bccc15"

为什么object.id.to_sym看起来像是一个字符串:

:"589d62c016bd4d0005bccc15"

而不是像这样的符号?:

:589d62c016bd4d0005bccc15`

1 个答案:

答案 0 :(得分:5)

因为在Ruby中:589d62c016bd4d0005bccc15不是有效的符号文字。如果你有一个从整数或整数本身开始的字符串,转换为符号文字,它将始终具有以下形式:

'23'.to_sym
#=> :"23"
23.to_s.to_sym
#=> :"23"