Enumerator Nesneleri
Dış yineleme
Enumerator Nesneleri, CoddyKit'te ücretsiz bir Ruby Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Ruby Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Ruby Academy kursu toplamda 4 dersten oluşur.
Dış Yineleme
Bir numaralandırıcı, bir yinelemeyi temsil eden bir nesnedir. Dış yinelemeyi destekler: each yöntemine bir blok vermek yerine, next ile değerleri birer birer çekersiniz.
enum = [10, 20, 30].each
puts enum.next
puts enum.nextNumaralandırıcı Alma
each gibi bir yineleme yöntemini blok olmadan çağırdığınızda yöntem çalışmaz; bunun yerine bir numaralandırıcı alırsınız.
enum = [1, 2, 3].each
puts enum.classSonraki Değerleri Çekme
next, her çağırdığınızda bir sonraki öğeyi döndürür. Numaralandırıcı konumunu hatırlar.
letters = ["a", "b", "c"].each
puts letters.next
puts letters.next
puts letters.nextSonda StopIteration
Değerler tükendiğinde next, StopIteration hatasını yükseltir. Temiz bir şekilde durmak için bu hatayı yakalayabilirsiniz.
enum = [1, 2].each
begin
loop { puts enum.next }
rescue StopIteration
puts "done"
endSonraki Değere Bakma ve Başa Sarma
peek ilerlemeden sonraki değere bakar; rewind ise başlangıca döner.
enum = [5, 6, 7].each
puts enum.peek
puts enum.next
enum.rewind
puts enum.nextÖzel Numaralandırıcılar Oluşturma
Enumerator.new ile kendi numaralandırıcınızı oluşturun. Blok, bir değer üretici olan y değerini alır; y << veya y.yield ile değerler verin.
evens = Enumerator.new do |y|
n = 0
loop do
y << n
n += 2
end
end
puts evens.next
puts evens.next
puts evens.nextSonsuz Numaralandırıcılar
Değerleri çekme temelli oldukları için özel numaralandırıcılar sonsuz olabilir. Yalnızca ihtiyacınız olanları alırsınız.
counter = Enumerator.new do |y|
i = 1
loop { y << i; i += 1 }
end
p counter.first(5)Numaralandırıcılar Numaralandırılabilirdir
Bir numaralandırıcı, Enumerable modülünü içerir; bu nedenle olağan yöntemlerin tümü (map, select, take) de çalışır ve dahili ile dış yinelemeyi birlikte kullanabilirsiniz.
fib = Enumerator.new do |y|
a, b = 0, 1
loop do
y << a
a, b = b, a + b
end
end
p fib.take(8)with_index
with_index, isteğe bağlı olarak özel bir sayıdan başlayarak herhangi bir numaralandırıcıya dizin ekler.
["x", "y", "z"].each.with_index(1) do |item, i|
puts "#{i}: #{item}"
endeach Yönteminden Numaralandırıcı Döndürme
Kendi sınıflarınızda, blok verilmediğinde çağıranların dış yineleme yapabilmesi için to_enum(:each) (veya enum_for) döndürün.
class Trio
def each
return to_enum(:each) unless block_given?
yield 1; yield 2; yield 3
end
end
e = Trio.new.each
puts e.next
puts e.nextHepsini Birleştirme
Numaralandırıcılar üzerinde ayrıntılı denetim sahibi olmanızı sağlar:
- Değerleri
nextile çekin, önizleyin veya geri sarın. Enumerator.newve bir değer üretici kullanarak özel numaralandırıcılar oluşturun.- Numaralandırılabilir oldukları için eşleme, seçme ve alma işlemlerinin tümü çalışır.
odds = Enumerator.new do |y|
n = 1
loop { y << n; n += 2 }
end
p odds.first(4)Hızlı Kontrol
Enumerator nesneleri hakkındaki anlayışınızı sınayın.
Özet
Enumerator nesnelerini öğrendiniz:
next,peekverewindaracılığıyla dış yineleme.StopIterationişlemin sona erdiğini bildirir.Enumerator.new { |y| ... }kullanarak özel numaralandırıcılar oluşturma.- Numaralandırılabilir olabilir ve sonsuza kadar sürebilirler.
nums = Enumerator.new { |y| 1.upto(3) { |n| y << n } }
puts nums.next
puts nums.nextSıkça Sorulan Sorular
“Enumerator Nesneleri” dersi ücretsiz mi?
Evet — “Enumerator Nesneleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Ruby Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Ruby Academy kursu toplamda 4 dersten oluşur.
“Enumerator Nesneleri” dersinde ne öğreneceğim?
Dış yineleme Ruby Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Ruby Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Ruby Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Enumerator Nesneleri” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Ruby Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Ruby Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Özel each Yazma
- Enumerable'ı Dahil Etme
- Tembel Numaralandırıcılar
- Enumerator Nesneleri