I posted this earlier, but it didn’t get through… (see my other post
“Ac Cautionary Tale”).
hehe
SM
---------- Forwarded message ----------
From: Simon M. [email protected]
Date: Sep 28, 2007 10:32 AM
Subject: Re: how to do “do” blocks
To: [email protected]
Hey
The “do…end” and “{…}” are almost equivalent (although “{…}” has
higher precedence).
So,
collection_of_objects = []
10.times do
collection_of_objects << MyObject.create
end
Is the equivalent to:
collection_of_objects = []
10.times {
collection_of_objects << MyObject.create
}
But (from the Ruby Cookbook), you may need to look at precedence.
So,
1.upto 3 do |x|
puts x
end
is ok.
But,
1.upto 3 { |x|
puts x
end
is not, as the code block binds to the 3, not the function call.
So, it would have to be:
1.upto(3) { |x|
puts x
end
Hope this helps!
SM
On 9/28/07, Daniel T. [email protected] wrote:
10.times do { collection_of_objects << MyObject.create }
I didn’t understand there was ANY difference between the two syntaxes
really. Can someone explain to me the finer points?Posted via http://www.ruby-forum.com/.
–
Simon M.