0Pricing
Ruby Academy · Ders

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 sum

Biriktirici 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
end

Baş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 max

Dize 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 word

each_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.inspect

Karma 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 lengths

Tekrarları 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 tally

reduce 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 }.inspect

tally 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"].tally

Hı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

  1. Aralıklar Oluşturma
  2. Enumerable Modülü
  3. map, select, reject
  4. reduce ve each_with_object
← Ruby Academy Sayfasına Dön