अधिक लोगों @cars.each
संकेतन का उपयोग क्योंकि कि अन्य विधियों (जैसे #inject
, #each_with_index
, #map
, आदि, और साथ ही गैर इटरेटर कॉलबैक) को सामान्यीकृत।
के लिए/में मुख्य रूप से #each
के लिए बस वाक्यात्मक चीनी है। कैसे दो काम चर scoping में है में मुख्य अंतर:
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"
के लिए/में बाद में दायरे में इटरेटर चर छोड़ देता है, जबकि #each
नहीं करता है।
व्यक्तिगत रूप से, मैं गहरे लाल रंग का के लिए/के उपयोग कभी नहीं वाक्य रचना में।
+1 - यही कारण है कि मेरा उत्तर की तुलना में काफी बेहतर है जल्दी और महान उत्तर के लिए – DanSingerman
धन्यवाद! :) – jacob
+1: यह अजीब है। सी # लूपवार निर्माण के लिए बाहर नहीं रहता है। वैसे भी रहना सभी को और अधिक कारण के लिए प्रत्येक – Gishu