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

  • jonathepianist

    jonathepiani

    31 Temmuz 2008
  • New Challenger - Game Reviews

    New Challeng

    20 Temmuz 2006
  • FF Radioo

    FF Radioo

    14 ŞUBAT 2007