Method &block question


#1

Hi,

could someone please put a finger on the point i’m missing?

source:

def test *a
p a
end

[[1,2], [3,4]].each &method(:test)
puts “-----”
[[1,2], [3,4]].each &method(:p)
puts “-----”
[[1,2], [3,4]].each {|e| p e}


output:

[1, 2]
[3, 4]

1
2
3
4

[1, 2]
[3, 4]

ruby 1.8.2 (2004-12-25) [i386-mswin32]

Why is the second version interating over each single element?

cheers

Simon


#2

Simon Kröger wrote:

[…]
Why is the second version interating over each single element?

It does not, the array is simply splashed when passed to ‘p’, so p
sees two parameters and print them…

Sorry for the noise.

cheers

Simon