0Pricing
Ruby Academy · Lektion

Find-Patterns und Guards

Bedingungen in Matches

Find-Patterns und Guards ist eine kostenlose Ruby Academy-Lektion auf CoddyKit. Dies ist Lektion 3 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.

Guard-Bedingungen

Fügen Sie einem Pattern einen Guard mit if oder unless hinzu. Der Zweig wird nur ausgeführt, wenn sowohl das Pattern als auch die Bedingung erfolgreich sind.

case 7
in Integer => n if n.odd?
  puts 'odd integer'
end

Guards verwenden gebundene Variablen

Der Guard kann auf Variablen verweisen, die vom Pattern gebunden wurden. So können Sie komplexe Bedingungen für die abgeglichenen Daten formulieren.

case [4, 9]
in [a, b] if a < b
  puts 'ascending pair'
end

unless-Guards

Ein unless-Guard greift, wenn die Bedingung falsch ist – also als Umkehrung von if.

case 0
in Integer => n unless n.positive?
  puts 'zero or negative'
end

Mehrere Zweige mit Guards

Kombinieren Sie Guards über mehrere Zweige hinweg, um eine übersichtliche Entscheidungsfolge aufzubauen.

def grade(score)
  case score
  in Integer => s if s >= 90 then 'A'
  in Integer => s if s >= 70 then 'B'
  else 'C'
  end
end
puts(grade(85))

Find-Patterns

Ein Find-Pattern [*, x, *] durchsucht ein Array nach einem Unterpattern, das sich beliebig innerhalb des Arrays befindet, wobei an beiden Enden Splats stehen.

case [1, 2, 3, 4]
in [*, 3, *]
  puts 'contains a 3'
end

Innerhalb eines Find-Patterns binden

Das abgeglichene Element in einem Find-Pattern kann gebunden werden, um den gefundenen Wert zu erfassen.

case [10, 20, 30]
in [*, x, *] if x > 25
  puts("found #{x}")
end

Umgebende Elemente erfassen

Beide Splats in einem Find-Pattern können benannt werden, um die Elemente vor und nach dem Treffer zu erfassen.

case [1, 2, 99, 4, 5]
in [*before, 99, *after]
  p before
  p after
end

Ein typisiertes Element finden

Find-Patterns lassen sich mit Typpatterns kombinieren, um das erste Element eines bestimmten Typs zu finden.

case [1, 'hi', 2]
in [*, String => word, *]
  puts(word)
end

Guards vs. Patterns

Drücken Sie im Pattern alles aus, was sich strukturell beschreiben lässt, und verwenden Sie Guards nur für Bedingungen, die Patterns nicht abbilden können, etwa numerische Vergleiche oder Methodenaufrufe.

case { role: 'admin', age: 40 }
in { role: 'admin', age: } if age >= 18
  puts 'adult admin'
end

Find-Pattern und Guard kombinieren

Mit Find-Patterns und Guards können Sie gemeinsam fragen: Erfüllt irgendein Element diese Bedingung?

numbers = [3, 5, 8, 11]
case numbers
in [*, n, *] if n.even?
  puts("first even-ish hit: #{n}")
end

Reihenfolge der Zweige

Die Zweige werden von oben nach unten geprüft; der erste Treffer gewinnt. Platzieren Sie spezifischere Patterns mit Guards vor allgemeineren Patterns.

case 100
in Integer => n if n > 50 then puts 'big'
in Integer then puts 'small'
end

Kurzer Check

Was bewirkt das Find-Pattern [*, x, *]?

Zusammenfassung: Find-Patterns und Guards

Sie haben dem Matching Bedingungen und Suchfunktionen hinzugefügt:

  • Guards mit if / unless verfeinern ein Pattern
  • Guards können gebundene Variablen verwenden
  • Find-Patterns wie [*, x, *] suchen an beliebiger Stelle
  • Beide Splats können benannt werden, um die Umgebung zu erfassen
  • Der erste passende Zweig gewinnt, daher ist die Reihenfolge wichtig
case [1, 7, 3]
in [*, x, *] if x > 5 then puts x
end

Häufig gestellte Fragen

Ist die Lektion „Find-Patterns und Guards“ kostenlos?

Ja — der vollständige Text von „Find-Patterns und Guards“ 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 „Find-Patterns und Guards“?

Bedingungen in Matches 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 3 von 4.

Wie lange dauert die Lektion „Find-Patterns und Guards“?

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. case/in-Grundlagen
  2. Array- und Hash-Patterns
  3. Find-Patterns und Guards
  4. Praktische Anwendungsfälle
← Zurück zu Ruby Academy