Project

General

Profile

Bug #8507

Updated by nobu (Nobuyoshi Nakada) over 10 years ago

=begin 
 A single splat is useful to convert an object to an array as it passes from one method to the next, so I expected the double-splat to do the same and convert the object to a hash. 

 ~~~ruby 
 

   def splat *args 
   
     p args 
 
   end 
 
   def double_splat **kwargs 
   
     p args 
 
   end 
 
   splat(*nil)    # [] 
 
   splat(**nil) # TypeError: no implicit conversion of nil into Hash 
 ~~~ 

 For the sake of consistency, wouldn't it make sense to wrap the double-splatted arg with `Hash()` (({Hash()})) the same way a single-splatted arg is wrapped with `Array()`? (({Array()}))? 
 =end 

Back