将Ruby符号转换为整数

lor*_*non 5 ruby

我发现令人惊讶的是Ruby符号可以被整合到整数中而没有错误.这:a.to_i是合法的.我想知道这个整数的意义是什么,它是一个特定于该符号的唯一值吗?

And*_*all 12

您不应该这样做,因为Symbol#to_i在Ruby 1.9中已删除,因此不能兼容.无论如何,文档都这样说:

返回一个整数,该整数对于程序的特定执行中的每个符号都是唯一的.

它大致相当于调用object_id符号,因为它们最终都调用了C函数SYM2ID().