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ıyordunuz. Her each do |x| ... end yazdığınızda, do ve end arasındaki kısım bir blok idi: bir metoda aktarılan bir 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 bloğu her bir öğe için bir kez çalıştırır ve onu n olarak içeri aktarır.

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

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

Bir metodu bloğu olmadan çağırmak, ne yaptığını değiştirir. Blok içermeyen [1,2,3].map, dönüştürülmüş bir dizi yerine bir numaralandırıcı (enumerator) döndürür, bu nedenle blok, metodun ne anlama geldiğinin bir parçasıdır.

challenge icon

Görev

Başlangıç

Girdiden bir n tam sayısı okuyun. 0'dan n - 1'e kadar olan her bir i değeri için Iteration <i> mesajını yazdırmak üzere bir blok ile times metodunu kullanın.

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

Iteration 0
Iteration 1
Iteration 2

Kopya kağıdı

Bir blok, bir metoda do |param| ... end arasında iletilen bir kod parçasıdır:

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

Bir bloğu n kez tekrarlamak için times kullanın; burada i, 0'dan n - 1'e kadar gider:

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

Kendin dene

n = gets.to_i

# YAPILACAK: her yinelemeyi yazdırmak için bir blok ile n.times kullanın
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