Project

General

Profile

Bug #8507

Updated by nobu (Nobuyoshi Nakada) about 7 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. 

   

 <pre><code class="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 
 </code></pre> 

 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()}))? 
 =end 
 Array()?

Back