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 block geschrieben. Jedes Mal, wenn du each do |x| ... end geschrieben hast, war der Teil zwischen do und end ein block: ein Codeabschnitt, der an eine Methode übergeben wurde.

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

Hier ist each eine Methode des Arrays, und do |n| ... end ist der block. each führt den block einmal für jedes Element aus und übergibt es als n.

block sind keine separaten Objekte, die du in Variablen speicherst, sondern sie sind direkt an den Methodenaufruf gebunden. Eine Methode bekommt entweder einen block oder nicht, und die meisten Iterationsmethoden (each, map, select, times) sind dafür ausgelegt, einen zu übernehmen.

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

Das Aufrufen einer Methode ohne ihren Block verändert, was sie tut. [1,2,3].map ohne Block gibt einen Enumerator statt eines transformierten Arrays zurück, daher ist der Block Teil von der Bedeutung der Methode.

challenge icon

Aufgabe

Anfänger

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

Für die Eingabe 3 lautet die Ausgabe:

Iteration 0
Iteration 1
Iteration 2

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

Übe selbstständig: Online-Ruby-Compiler