20 Temmuz 2010, Salı
"için" vs "her" Ruby
Ben sadece hızlı bir soru ruby'de döngüleri ile ilgili vardı. Bir topluluk içinde yineleme bu iki yol arasında bir fark var mı?
# way 1
@collection.each do |item|
# do whatever
end
# way 2
for item in @collection
# do whatever
end
Eğer bu tam olarak aynı olup olmadığını ya da belki çok ince bir fark (@collection
sıfır olduğunda muhtemelen) eğer sadece merak.
CEVAP
20 Temmuz 2010, Salı
Tek fark budur:
her:
irb> [1,2,3].each { |x| }
=> [1, 2, 3]
irb> x
NameError: undefined local variable or method `x' for main:Object
from (irb):2
from :0
için:
irb> for x in [1,2,3]; end
=> [1, 2, 3]
irb> x
=> 3
for
döngü ile, yineleyici değişken hala blok yapıldıktan sonra yaşıyor. each
döngü, döngü başlamadan önce yerel bir değişken olarak tanımlanmıştır sürece mi, değil.
Bu, for
dışında sadece sözdizimi each
yöntemi için şeker.
@collection
nil
her iki döngüler istisna:
Özel durum: tanımsız yerel bir değişken veya yöntem `@koleksiyon' ana Nesne
Bunu Paylaş:
&Quot;geri arama uygulamak için nasıl&...
Ruby deyim için " iyi;sıfır ya da ...
Href JavaScript bağlantıları için özni...
Bir WordPress kullanmak için bir&; var...
Bir dize kontrol etmek için nasıl &quo...