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

  • Feel The Electricity!

    Feel The Ele

    20 ŞUBAT 2010
  • GenTechPC

    GenTechPC

    1 Temmuz 2007
  • Lamborghini

    Lamborghini

    13 Aralık 2005