Ruby'nin belgelerine göre, Enumerator nesnesi, to_enum
veya enum_for
yöntemlerine hiçbir hedef yöntem sağlanmamışsa each
yöntemini (numaralandırmak için) kullanır. Şimdi,Ruby Enumerator nesnesi, dahili bir yineleyici üzerinden dışarıdan nasıl yinelenir?
o = Object.new
def o.each
yield 1
yield 2
yield 3
end
e = o.to_enum
loop do
puts e.next
end
Listeleyicisi nesne gibi each
yöntem bakmak çağrıları nasıl, next
çağrıldığında cevap each
yöntemini kullanır göz önüne alındığında, her zaman Örnek olarak, aşağıdaki maymun yama ve numaralandırıcıyı atalım next
denir? Enumeartor sınıfı, o.each
'un tüm içeriğini önceden yükler ve numaralandırma için yerel bir kopyasını oluşturur mu? Ya da enumeartor'da next
çağrılıncaya kadar her bir verim tablosundaki işlemleri kilitleyen bir tür Ruby sihiri var mı?
Dahili bir kopya yapılırsa, bu bir kopya mı? Harici numaralandırma için kullanılabilecek G/Ç nesneleri nedir?
Ruby 1.9.2 kullanıyorum.
, sen 'satır içi kod biçimlendirme yapmak metnin etrafında komutu ters tırnak (\') kullanın:) ' –
muchas gracias! Bir dahaki sefere bunu akılda tutacak. –