0Pricing
Ruby Academy · Ders

Blokların Özeti

Blokları yöntemlere geçirme

Blokların Özeti, CoddyKit'te ücretsiz bir Ruby Academy dersidir. Bu, 4 dersinin 1. 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.

Yöntemlere Blok Geçirme

Blok, bir yönteme verdiğiniz kod parçasıdır. each gibi birçok Ruby yöntemi bir blok kabul eder ve onu sizin için çalıştırır. Bloklar, Ruby'nin ifade gücü yüksek tarzının temelidir.

[1, 2, 3].each do |n|
  puts n * 10
end

İki Blok Sözdizimi

Çok satırlı bloklar için do ... end, kısa tek satırlık ifadeler içinse süslü parantezleri { } kullanın. Aynı şekilde davranırlar.

[1, 2, 3].each { |n| puts n }

Blok Parametreleri

| | işaretleri arasındaki adlar, bloğun parametreleridir. Bunlara ne geçirileceğine yöntem karar verir.

{ a: 1, b: 2 }.each do |key, value|
  puts "#{key} = #{value}"
end

yield Bloğu Çağırır

Bir yöntemin içinde yield, geçirilen bloğu çalıştırır. yield kullanmak için bloğu parametre listesinde tanımlamanız gerekmez.

def twice
  yield
  yield
end
twice { puts "Hi" }

Argümanlarla yield

Değerleri yield aracılığıyla bloğa geçirin. Bu değerler bloğun parametrelerine yerleşir.

def greet_each(names)
  names.each { |n| yield n }
end
greet_each(["Ann", "Bo"]) { |name| puts "Hello #{name}" }

block_given?

Blok olmadan yield çağırmak bir hata yükseltir. Bloğu isteğe bağlı hale getirmek için önce block_given? ile denetleyin.

def maybe
  if block_given?
    yield
  else
    puts "No block provided"
  end
end
maybe
maybe { puts "Block ran" }

Bloklar Değer Döndürür

Bir blok, son ifadesinin değerini üretir. map gibi yöntemler bu dönüş değerlerini yeni bir dizide toplar.

squares = [1, 2, 3, 4].map { |n| n * n }
p squares

yield Değeri

yield kendi başına bloğun değerini döndürür; bu nedenle bir yöntem, girdiyi çağıranın sağladığı bir blok aracılığıyla dönüştürebilir.

def transform(x)
  yield x
end
result = transform(5) { |n| n + 100 }
puts result

& ile Blok Yakalama

Bloğu depolayabileceğiniz veya aktarabileceğiniz bir Proc nesnesi olarak yakalamak için son parametrenin önüne & koyun.

def run(&block)
  block.call
end
run { puts "Called via block.call" }

Numaralandırılmış Parametreler

Modern Ruby, _1 (veya Ruby 3.4 ve sonraki sürümlerde it) kullanarak tek bir blok parametresini adlandırmayı atlamanıza olanak tanır. Küçük bloklar için kullanışlıdır.

[10, 20, 30].each { puts _1 }

Hepsini Bir Araya Getirme

Bloklar, metotların davranış kabul etmesini sağlar:

  • do...end veya { } bir blok sağlar.
  • yield bloğu çalıştırır; block_given? ise bloğun verilip verilmediğini test eder.
  • &block bloğu yeniden kullanılabilir bir nesneye dönüştürür.
def repeat(times)
  return unless block_given?
  times.times { |i| yield i }
end
repeat(3) { |i| puts "Step #{i}" }

Hızlı Kontrol

Bloklarla ilgili anlayışınızı test edin.

Özet

Blokları gözden geçirdiniz:

  • Bloklar, do...end veya { } aracılığıyla davranışı metotlara aktarır.
  • yield bloğu çalıştırır ve değerini döndürür.
  • block_given?, blokları isteğe bağlı hâle getirir.
  • &block, bir bloğu Proc olarak yakalar.
def wrap
  puts "<<"
  yield
  puts ">>"
end
wrap { puts "content" }

Sıkça Sorulan Sorular

“Blokların Özeti” dersi ücretsiz mi?

Evet — “Blokların Özeti” 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.

“Blokların Özeti” dersinde ne öğreneceğim?

Blokları yöntemlere geçirme 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 1. dersidir.

“Blokların Özeti” 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. Blokların Özeti
  2. Proc'lar
  3. Lambda'lar
  4. Kapanımlar ve Kapsam
← Ruby Academy Sayfasına Dön