SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Branboy3

    Branboy3

    12 AĞUSTOS 2012
  • knopik96

    knopik96

    7 Mayıs 2011
  • VvCompHelpvV

    VvCompHelpvV

    4 EYLÜL 2007