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}"
endyield 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 squaresyield 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...endveya{ }bir blok sağlar.yieldbloğu çalıştırır;block_given?ise bloğun verilip verilmediğini test eder.&blockbloğ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...endveya{ }aracılığıyla davranışı metotlara aktarır. yieldbloğ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
- Blokların Özeti
- Proc'lar
- Lambda'lar
- Kapanımlar ve Kapsam