Ruby:nil.to_sym会引发异常,为什么?

时间:2016-11-27 13:19:32

标签: ruby

nil.to_i => 0
nil.to_a => []
nil.to_h => {}
nil.to_s => ''
nil.to_sym => undefined method `to_sym' for nil:NilClass

是否有具体原因导致未实施?我期待这种行为:

nil.to_sym => :''

这与其他人一致。我应该在ruby-lang.org上提出功能请求吗?

1 个答案:

答案 0 :(得分:2)

我认为实施nil.to_sym => :''在Ruby中语义上是不正确的。

" to_sym" method返回与字符串对应的Symbol,如果先前不存在则创建该符号。考虑到nil不是String的实例而是NilClass实例,它满足其创建者设置的规范。

我希望这可以回答你的问题。