Wiederholung zu Blöcken
Blöcke an Methoden übergeben
Wiederholung zu Blöcken ist eine kostenlose Ruby Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Ruby Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Ruby Academy-Kurs umfasst insgesamt 4 Lektionen.
Blöcke an Methoden übergeben
Ein Block ist ein Codeabschnitt, den Sie einer Methode übergeben. Viele Ruby-Methoden wie each akzeptieren einen Block und führen ihn für Sie aus. Blöcke bilden die Grundlage von Rubys ausdrucksstarkem Stil.
[1, 2, 3].each do |n|
puts n * 10
endZwei Block-Syntaxen
Verwenden Sie do ... end für mehrzeilige Blöcke und geschweifte Klammern { } für kurze Einzeiler. Sie verhalten sich gleich.
[1, 2, 3].each { |n| puts n }Block-Parameter
Die Namen zwischen den Pipes | | sind die Parameter des Blocks. Die Methode bestimmt, welche Werte an sie übergeben werden.
{ a: 1, b: 2 }.each do |key, value|
puts "#{key} = #{value}"
endyield ruft den Block auf
Innerhalb einer Methode führt yield den übergebenen Block aus. Sie müssen den Block nicht in der Parameterliste deklarieren, um yield zu verwenden.
def twice
yield
yield
end
twice { puts "Hi" }yield mit Argumenten
Übergeben Sie Werte über yield an den Block. Sie werden in dessen Parametern gespeichert.
def greet_each(names)
names.each { |n| yield n }
end
greet_each(["Ann", "Bo"]) { |name| puts "Hello #{name}" }block_given?
Der Aufruf von yield ohne Block löst einen Fehler aus. Prüfen Sie zuerst mit block_given?, ob ein Block übergeben wurde, damit er optional sein kann.
def maybe
if block_given?
yield
else
puts "No block provided"
end
end
maybe
maybe { puts "Block ran" }Blöcke geben Werte zurück
Ein Block wird zu seinem letzten Ausdruck ausgewertet. Methoden wie map sammeln diese Rückgabewerte in einem neuen Array.
squares = [1, 2, 3, 4].map { |n| n * n }
p squaresDer Wert von yield
yield selbst gibt den Wert des Blocks zurück, sodass eine Methode Eingaben mithilfe eines vom Aufrufer bereitgestellten Blocks umwandeln kann.
def transform(x)
yield x
end
result = transform(5) { |n| n + 100 }
puts resultEinen Block mit & erfassen
Setzen Sie dem letzten Parameter & voran, um den Block als Proc-Objekt zu erfassen, das Sie speichern oder weitergeben können.
def run(&block)
block.call
end
run { puts "Called via block.call" }Nummerierte Parameter
Mit modernem Ruby können Sie die Benennung eines einzelnen Blockparameters mit _1 überspringen (oder it in Ruby 3.4+ verwenden). Praktisch für sehr kleine Blöcke.
[10, 20, 30].each { puts _1 }Alles zusammenführen
Blöcke ermöglichen es Methoden, Verhalten entgegenzunehmen:
do...endoder{ }übergeben einen Block.yieldführt ihn aus;block_given?prüft, ob er übergeben wurde.&blockmacht daraus ein wiederverwendbares Objekt.
def repeat(times)
return unless block_given?
times.times { |i| yield i }
end
repeat(3) { |i| puts "Step #{i}" }Kurzer Test
Testen Sie Ihr Verständnis von Blöcken.
Zusammenfassung
Sie haben Blöcke wiederholt:
- Blöcke übergeben Verhalten mithilfe von
do...endoder{ }an Methoden. yieldführt den Block aus und gibt seinen Wert zurück.block_given?macht Blöcke optional.&blockerfasst einen Block als Proc.
def wrap
puts "<<"
yield
puts ">>"
end
wrap { puts "content" }Häufig gestellte Fragen
Ist die Lektion „Wiederholung zu Blöcken“ kostenlos?
Ja — der vollständige Text von „Wiederholung zu Blöcken“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Ruby Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Ruby Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Wiederholung zu Blöcken“?
Blöcke an Methoden übergeben Du übst Ruby Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Ruby Academy zu starten?
Keine Vorkenntnisse erforderlich. Ruby Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „Wiederholung zu Blöcken“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Ruby Academy-Lektion Code schreiben und ausführen?
Ja. Jede Ruby Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Wiederholung zu Blöcken
- Procs
- Lambdas
- Closures und Gültigkeitsbereich