In: === code start ===a=10, b=20 c=100, d=2200 #x=>1000, y=>2000 # MultipleExpressionsPerLine.rb:3: p a, b p c, d === code end == Ruby puts out four lines (under SciTE): [10, 20] 20 [100, 2200] 2200 Q1: Why does Ruby somehow create an array for lines 1 & 2? Q2: Why does Ruby assign this array to a, but the scalar (20) to b? Q3: If Ruby''s willing to build arrays for lines 1 & 2, why won''t it build a hash for line 3? I''m running WinXP-Pro/SP2, Ruby 1.8.2-15, Rails 1.1.6. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
dblack-TKXtfPMJ4Ozk1uMJSBkQmQ@public.gmane.org
2006-Dec-16 01:16 UTC
Re: Simple syntax question
Hi -- On Fri, 15 Dec 2006, Richard wrote:> > In: > > === code start ===> a=10, b=20 > c=100, d=2200 > #x=>1000, y=>2000 # MultipleExpressionsPerLine.rb:3: > > p a, b > p c, d > === code end ==> > Ruby puts out four lines (under SciTE): > > [10, 20] > 20 > [100, 2200] > 2200 > > Q1: Why does Ruby somehow create an array for lines 1 & 2? > Q2: Why does Ruby assign this array to a, but the scalar (20) to b? > Q3: If Ruby''s willing to build arrays for lines 1 & 2, why won''t it > build a hash for line 3? > > I''m running WinXP-Pro/SP2, Ruby 1.8.2-15, Rails 1.1.6.When you do this: a=10, b=20 the way it''s parsed is: a = 10, (b=20) The assignment of 20 to b happens first, and then the whole rhs is assigned to a. From a''s point of view, this is the same as: a = 10,20 and assigning a literal list like that works like assigning an array. As for the third line: x => 1000 isn''t a legal expression on its own. => is not an assignment operator; it''s just a hash key/value separator. David -- Q. What''s a good holiday present for the serious Rails developer? A. RUBY FOR RAILS by David A. Black (http://www.manning.com/black) aka The Ruby book for Rails developers! Q. Where can I get Ruby/Rails on-site training, consulting, coaching? A. Ruby Power and Light, LLC (http://www.rubypal.com) --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Hi David, Thanks for your clarification. Now that you explain (a=10, b=20), my brain said: You read that before, Dummy ... why do you always forget things? I had just found a nice tutorial on sorting tables by clicking on column headings. It included a long line of comma-separated assignments and I couldn''t make sense of it. Now I''m grounded again! Again, thanks. Best wishes, Richard dblack-TKXtfPMJ4Ozk1uMJSBkQmQ@public.gmane.org wrote:> Hi -- > > On Fri, 15 Dec 2006, Richard wrote: > > > > > In: > > > > === code start ===> > a=10, b=20 > > c=100, d=2200 > > #x=>1000, y=>2000 # MultipleExpressionsPerLine.rb:3: > > > > p a, b > > p c, d > > === code end ==> > > > Ruby puts out four lines (under SciTE): > > > > [10, 20] > > 20 > > [100, 2200] > > 2200 > > > > Q1: Why does Ruby somehow create an array for lines 1 & 2? > > Q2: Why does Ruby assign this array to a, but the scalar (20) to b? > > Q3: If Ruby''s willing to build arrays for lines 1 & 2, why won''t it > > build a hash for line 3? > > > > I''m running WinXP-Pro/SP2, Ruby 1.8.2-15, Rails 1.1.6. > > When you do this: > > a=10, b=20 > > the way it''s parsed is: > > a = 10, (b=20) > > The assignment of 20 to b happens first, and then the whole rhs is > assigned to a. From a''s point of view, this is the same as: > > a = 10,20 > > and assigning a literal list like that works like assigning an array. > > As for the third line: x => 1000 isn''t a legal expression on its own. > => is not an assignment operator; it''s just a hash key/value > separator. > > > David > > -- > Q. What''s a good holiday present for the serious Rails developer? > A. RUBY FOR RAILS by David A. Black (http://www.manning.com/black) > aka The Ruby book for Rails developers! > Q. Where can I get Ruby/Rails on-site training, consulting, coaching? > A. Ruby Power and Light, LLC (http://www.rubypal.com)--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---