Feature #4621
closedNilClass#to_hash
Description
=begin
Various methods defined on NilClass are handy to avoid Method undefined on NilClass errors. For example,
-
to_afor multiple dimensioned array when there might not be some values for some indices:array[i].to_a[j].to_a[k] -
to_sfor pattern match that might fail:string[regex].to_s*2 -
to_i,to_f,to_cfor index search that might fail, etc:array.index(element).to_i*3
But there is no NilClass#to_hash even though there is Hash#to_hash. If such method existed (equivalent to class NilClass; def to_hash; {} end end), then we would be able to do:
-
to_hashfor multiple embedded hash when there might not be some values for some keys:hash[:a].to_hash[:b].to_hash[:c]
Is there any reason why to_a, to_s, to_i, to_f, to_c are all defined on NilClass but not for to_hash? If there is not, I would like to request this feature.
=end
Updated by naruse (Yui NARUSE) over 14 years ago
- Category set to core
- Status changed from Open to Assigned
- Assignee set to matz (Yukihiro Matsumoto)
=begin
=end
Updated by matz (Yukihiro Matsumoto) over 14 years ago
- Status changed from Assigned to Rejected
=begin
=end
Updated by matz (Yukihiro Matsumoto) over 14 years ago
=begin
Hi,
In message "Re: [ruby-core:35924] [Ruby 1.9 - Feature #4621][Assigned] NilClass#to_hash"
on Wed, 27 Apr 2011 16:46:01 +0900, Yui NARUSE redmine@ruby-lang.org writes:
|Is there any reason why to_a, to_s, to_i, to_f, to_c are all defined on NilClass but not for to_hash? If there is not, I would like to request this feature.
to_a, etc. are explicit conversion methods, whereas to_int, to_hash,
etc. are implicit conversion methods. I don't see any good reason to
add implicit conversion methods to nil.
matz.
=end