Hi all,
Thanks for your anwers yesterday. Are you ready for my next day of
learning Ruby?
First impressions of ranges:
let’s try ranges as sequences:
irb(main):271:0> (0…2).each { |bb| puts bb }
0
1
2
=> 0…2
irb(main):272:0> (0…2).each { |bb| puts bb }
0
1
=> 0…2
very fun. Now let’s try ranges as conditions:
irb(main):282:0* a=[ “aaa”, “bbbb”, “bbbbbb”, “ccc”, “dddddd” ]
=> [“aaa”, “bbbb”, “bbbbbb”, “ccc”, “dddddd”]
irb(main):283:0> a.each { |b| puts b if b=~/b/…b=~/d/ }
bbbb
bbbbbb
ccc
dddddd
=> [“aaa”, “bbbb”, “bbbbbb”, “ccc”, “dddddd”]
irb(main):284:0> a.each { |b| puts b if b=~/b/…b=~/d/ }
bbbb
bbbbbb
ccc
dddddd
=> [“aaa”, “bbbb”, “bbbbbb”, “ccc”, “dddddd”]
“Oups it did not it again!”
… and … seems not working on the same way if you use ranges as
sequences or ranges as conditions. My point of view: (unless I’m making
a mistake) It gets confusing.
First impressions of blocks:
irb(main):293:0* a=[ “aaa”, “bbbb”, “bbbbbb”, “ccc”, “dddddd” ]
=> [“aaa”, “bbbb”, “bbbbbb”, “ccc”, “dddddd”]
irb(main):294:0> a.each { |a| puts a }
aaa
bbbb
bbbbbb
ccc
dddddd
=> [“aaa”, “bbbb”, “bbbbbb”, “ccc”, “dddddd”]
irb(main):295:0> a
=> “dddddd”
a is changed. scope of the block is not duplicate/separate?
Florent,