0Pricing
Ruby Academy · Lektion

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
end

Zwei 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}"
end

yield 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 squares

Der 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 result

Einen 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...end oder { } übergeben einen Block.
  • yield führt ihn aus; block_given? prüft, ob er übergeben wurde.
  • &block macht 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...end oder { } an Methoden.
  • yield führt den Block aus und gibt seinen Wert zurück.
  • block_given? macht Blöcke optional.
  • &block erfasst 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

  1. Wiederholung zu Blöcken
  2. Procs
  3. Lambdas
  4. Closures und Gültigkeitsbereich
← Zurück zu Ruby Academy