Menu
Coddy logo textTech

Blok Nedir?

Coddy'nin Ruby Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 15 / 56.

Zaten bloklar yazıyordun. Her each do |x| ... end yazdığında, do ile end arasındaki kısım bir blok idi: bir metoda aktarılan kod parçası.

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

Burada each, dizi üzerinde bir metottur ve do |n| ... end bloktur. each, her öğe için bloğu bir kez çalıştırır ve öğeyi n olarak aktarır.

Bloklar, değişkenlerde sakladığınız ayrı nesneler değildir; doğrudan yöntem çağrısına bağlıdırlar. Bir yöntem ya bir blok alır ya da almaz ve yineleme yöntemlerinin çoğu (each, map, select, times) bir blok alacak şekilde tasarlanmıştır.

3.times do |i|
  puts "hi #{i}"
end

Bir yöntemi bloğu olmadan çağırmak, yaptığı şeyi değiştirir. Blok olmadan [1,2,3].map, dönüştürülmüş bir dizi yerine bir enumerator döndürür; dolayısıyla blok, yöntemin ne anlama geldiğinin bir parçasıdır.

challenge icon

Görev

Başlangıç

Girdiden bir tamsayı n okuyun. 0 ile n - 1 arasındaki her i değeri için Iteration <i> mesajını yazdırmak üzere bir blokla times yöntemini kullanın.

3 girdisi için çıktı şöyledir:

Iteration 0
Iteration 1
Iteration 2

Kendin dene

n = gets.to_i

# TODO: her yinelemeyi yazdırmak için bir blok ile n.times kullan
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online Ruby derleyicisi