reduce ve each_with_object
Koleksiyonları birleştirin
reduce ve each_with_object, 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.
reduce Nedir?
reduce (inject diğer adıyla), tüm öğeleri tek bir değerde birleştirir. Blok, bir biriktirici ve geçerli öğeyi alır.
sum = [1, 2, 3, 4].reduce(0) { |acc, n| acc + n }
puts sumBiriktirici Nasıl Çalışır?
Biriktirici, yinelemeler arasındaki devam eden sonucu taşır. Bloğun döndürdüğü değer, sonraki biriktirici olur.
[1, 2, 3].reduce(0) do |acc, n|
puts "acc=#{acc} n=#{n}"
acc + n
endBaşlangıç Değeri Olmadan reduce
Başlangıç değeri olmadığında ilk öğe biriktirici olur ve yineleme ikinci öğeden başlar.
puts [10, 20, 30].reduce { |acc, n| acc + n }Sembolle reduce
Basit işleçler için blok yerine :+ veya :* gibi bir sembol geçirebilirsiniz.
puts [1, 2, 3, 4].reduce(:+)
puts [1, 2, 3, 4].reduce(:*)Maksimum Değeri Bulma
reduce, toplamlar gibi işlemlerin yanı sıra en büyük değeri bulmak gibi başka hesaplamalar da yapabilir.
nums = [3, 9, 2, 7]
max = nums.reduce { |acc, n| n > acc ? n : acc }
puts maxDize Oluşturma
Biriktirici, oluşturduğunuz bir dize de dahil olmak üzere herhangi bir türde olabilir.
letters = ["r", "u", "b", "y"]
word = letters.reduce("") { |acc, c| acc + c.upcase }
puts wordeach_with_object Nedir?
each_with_object, reduce işlemine benzer; ancak otomatik olarak döndürülen değiştirilebilir bir nesne verirsiniz. Nesneyi blok içinde değiştirirsiniz.
result = [1, 2, 3].each_with_object([]) do |n, arr|
arr << n * 2
end
puts result.inspectKarma Oluşturma
each_with_object, her seferinde nesneyi döndürmeniz gerekmediği için karma oluşturmak için idealdir.
words = ["apple", "pear"]
lengths = words.each_with_object({}) do |w, h|
h[w] = w.length
end
puts lengthsTekrarları Sayma
Öğeleri saymak için varsayılan bir karmayı each_with_object ile birleştirin.
votes = ["a", "b", "a", "a"]
tally = votes.each_with_object(Hash.new(0)) do |v, h|
h[v] += 1
end
puts tallyreduce ve each_with_object Karşılaştırması
Her adımda yeni bir değer döndürdüğünüzde (toplamlar, çarpımlar) reduce kullanın. Tek bir kapsayıcıyı (diziler, karmalar) değiştirdiğinizde each_with_object kullanın.
puts [1, 2, 3].reduce(:+)
puts [1, 2, 3].each_with_object([]) { |n, a| a << n }.inspecttally Kısayolu
Ruby'de sayma işlemi için işi sizin yerinize yapan yerleşik bir tally metodu vardır.
puts ["a", "b", "a"].tallyHızlı Denetim
Toplama becerilerinizi denetleyin.
Özet
Artık koleksiyonları toplu olarak işleyebilirsiniz:
- Biriktirici, başlangıç değeri veya sembolle
reduce/inject - Diziler ve karmalar oluşturmak için
each_with_object - Hızlı sayımlar için
tally - Yeni değerler için reduce, değiştirilebilir kapsayıcılar için each_with_object seçimi
Sıradaki kurs: sayılar ve matematik.
puts (1..5).reduce(:*)Sıkça Sorulan Sorular
“reduce ve each_with_object” dersi ücretsiz mi?
Evet — “reduce ve each_with_object” 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.
“reduce ve each_with_object” dersinde ne öğreneceğim?
Koleksiyonları birleştirin 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.
“reduce ve each_with_object” 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
- Aralıklar Oluşturma
- Enumerable Modülü
- map, select, reject
- reduce ve each_with_object