From: Justin Collins Date: 2008-04-19T04:42:44+09:00 Subject: Re: Why this code is working Neeraj Kumar wrote: > this code is a simplified version of the code I saw in Rails. > > def speak(*types,&block) > block.call > end > > # I can understand why this code is working > speak(23) { puts 'hi' } > > # why this code is working ?. This code should fail because I am not > providing any # param to types. It means block is being passed as the > first param and that's not # good > speak { puts 'hi' } > *args means "zero or more parameters" which are then placed in an array and passed into the method. The block is not being passed as the first parameter. -Justin