より多くの人々が@cars.each
表記法を使用します。
/forは、主に文法上の砂糖で、#each
です。 2つの作品は、変数のスコープであるかの主な違い:#each
はそうではない
irb> @cars = %w{ ford chevy honda toyota }
#=> ["ford", "chevy", "honda", "toyota"]
irb> @cars.each { |car| puts car }
ford
chevy
honda
toyota
#=> ["ford", "chevy", "honda", "toyota"]
irb> car
NameError: undefined local variable or method `car` for #<Object:0x399770 @cars=["ford", "chevy", "honda", "toyota"]>
from (irb):3
from /usr/local/bin/irb:12:in `<main>`
irb> for car in @cars
puts car.reverse
end
drof
yvehc
adnoh
atoyot
#=> ["ford", "chevy", "honda", "toyota"]
irb> car
#=> "toyota"
用/中には、その後のスコープでイテレータ変数を残します。
個人的に、私はruby's for/in構文を使っていません。
+1 - それは私の答えよりもはるかに優れています – DanSingerman
すばらしい返信ありがとう! :) – jacob
+1:それは変です。 C#loopvarはfor構造体を使い果たしません。いずれにしても、それぞれに固執するもっと多くの理由 – Gishu