c = [1,2,3,4,5,6,6,7,8,10]
b = {|aVal| aVal / 5 == 0}
d = c.select(b)
I would like to store sections of code so I don't have to repeat
myself...
Julian.
b = Proc.new {|aVal| aVal / 5 == 0}
d = c.select(&b)
- Jamis
What's the significance of '&b' vs 'b'?
&b means that it's serving as the code block for this method call. b
means the Proc object is just a regular argument to the method.
David
--
David A. Black
dbl...@wobblini.net
> > b = Proc.new {|aVal| aVal / 5 == 0}
> > d = c.select(&b)
>
> What's the significance of '&b' vs 'b'?
It tells ruby that parameter is to take the place
of the block, rather than be passed as one of the
arguments to the method.
Regards,
Bill
There is a similiarity between the star and the ampersand operator. A
star packs and unpacks arrays, while the ampersand packs and unpacks
code. E.g.
$ cat star-ampersand.rb
def another_method(a, b, c)
yield(:a=>a, :b => b, :c => c)
end
def take_block(*args, &block)
another_method(*args, &block)
end
take_block(1,2,3) do | hash | p hash end
$ ruby star-ampersand.rb
{:b=>2, :c=>3, :a=>1}
regards,
Brian
--
http://ruby.brian-schroeder.de/
Stringed instrument chords: http://chordlist.brian-schroeder.de/
Man THANNNNKKKSSSS :)
It's gonna take me a little bit of study to work out blocks, lambdas
and Proc objects! Far out.
But how awesome that Ruby can do that. Awesome! I'm like excited
as... :) Every time I come up against a new problem domain, I get
these awesome answers from these awesome people! {BIG VIRTUAL HUGS}
thanks guys.
Julian.