Menu
Coddy logo textTech

Was ist ein Block?

Teil des Abschnitts Logik & Programmfluss der Ruby-Journey von Coddy — Lektion 15 von 56.

Du hast bereits Blöcke geschrieben. Jedes Mal, wenn du each do |x| ... end geschrieben hast, war der Teil zwischen do und end ein Block: ein Stück Code, das an eine Methode übergeben wurde.

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

Hier ist each eine Methode auf dem Array, und do |n| ... end ist der Block. each führt den Block einmal für jedes Element aus und übergibt es als n.

Blöcke sind keine separaten Objekte, die man in Variablen speichert; sie sind direkt an den Methodenaufruf gebunden. Eine Methode erhält entweder einen Block oder nicht, und die meisten Iterationsmethoden (each, map, select, times) sind darauf ausgelegt, einen entgegenzunehmen.

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

Das Aufrufen einer Methode ohne ihren Block ändert ihre Funktionsweise. [1,2,3].map ohne Block gibt einen Enumerator anstelle eines transformierten Arrays zurück, daher ist der Block Teil dessen, was die Methode bedeutet.

challenge icon

Aufgabe

Anfänger

Lies eine Ganzzahl n von der Eingabe. Verwende die times-Methode mit einem Block, um die Nachricht Iteration <i> für jeden Wert von i von 0 bis n - 1 auszugeben.

Für die Eingabe 3 ist die Ausgabe:

Iteration 0
Iteration 1
Iteration 2

Spickzettel

Ein Block ist ein Stück Code, das an eine Methode zwischen do |param| ... end übergeben wird:

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

Verwenden Sie times, um einen Block n Mal zu wiederholen, wobei i von 0 bis n - 1 läuft:

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

Probier es selbst

n = gets.to_i

# TODO: verwende n.times mit einem Block, um jede Iteration auszugeben
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Programmfluss