0Pricing
Ruby Academy · Lektion

Praktische Anwendungsfälle

Strukturierte Daten parsen

Praktische Anwendungsfälle ist eine kostenlose Ruby Academy-Lektion auf CoddyKit. Dies ist Lektion 4 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.

Warum Pattern Matching überzeugt

Pattern Matching spielt seine Stärken bei der Verarbeitung strukturierter Daten aus: bei API-Antworten, Konfigurationsbäumen und geparsten Dateien. Es ersetzt verschachtelte Prüfungen mit if/dig durch einen einzigen lesbaren Ausdruck.

require 'json'
resp = JSON.parse('{"ok":true,"data":42}', symbolize_names: true)
case resp
in { ok: true, data: }
  puts(data)
end

API-Erfolge und -Fehler behandeln

Gleichen Sie unterschiedliche Antwortstrukturen in getrennten Zweigen ab und extrahieren Sie für jede die passenden Felder.

def handle(resp)
  case resp
  in { status: 'ok', result: }
    "got #{result}"
  in { status: 'error', message: }
    "error: #{message}"
  end
end
puts(handle({ status: 'error', message: 'bad input' }))

Kommandozeilenargumente parsen

Gleichen Sie ein Array von Argumenten ab, um Befehle übersichtlich weiterzuleiten.

def run(args)
  case args
  in ['add', a, b]
    a.to_i + b.to_i
  in ['echo', *rest]
    rest.join(' ')
  end
end
puts(run(['add', '3', '4']))
puts(run(['echo', 'hi', 'there']))

Die Struktur eines Datensatzes validieren

Verwenden Sie ein Pattern, um vor der Verarbeitung sicherzustellen, dass ein Datensatz die erforderlichen Felder und Typen enthält.

def valid?(rec)
  case rec
  in { name: String, age: Integer => a } if a >= 0
    true
  else
    false
  end
end
puts(valid?({ name: 'Ada', age: 36 }))
puts(valid?({ name: 'X', age: -1 }))

Verschachtelte Konfiguration zerlegen

Extrahieren Sie tief verschachtelte Konfigurationswerte mit einem einzigen Match, statt verkettete Nachschlagevorgänge zu verwenden.

cfg = { server: { host: 'localhost', port: 8081 } }
case cfg
in { server: { host:, port: } }
  puts("#{host}:#{port}")
end

Tagged Unions

Ein gängiges funktionales Muster: Daten werden durch einen Typ-Tag gekennzeichnet und anhand dieses Tags weitergeleitet.

def area(shape)
  case shape
  in { type: 'circle', r: }
    (3.14 * r * r).round(2)
  in { type: 'rect', w:, h: }
    w * h
  end
end
puts(area({ type: 'rect', w: 3, h: 4 }))

Matching mit deconstruct

Benutzerdefinierte Objekte können abgeglichen werden, wenn sie deconstruct definieren (für Array-Patterns). Struct erledigt dies automatisch.

Point = Struct.new(:x, :y)
case Point.new(1, 2)
in [x, y]
  puts("#{x},#{y}")
end

Matching mit deconstruct_keys

Definieren Sie deconstruct_keys, um Hash-Patterns zu unterstützen. Auch Struct stellt diese Methode bereit und ermöglicht dadurch das Matching nach Namen.

Point = Struct.new(:x, :y)
case Point.new(3, 4)
in { x:, y: }
  puts("x=#{x} y=#{y}")
end

Klasse mit Pattern

Kombinieren Sie ein Typpattern mit einem Hash-Pattern, um eine bestimmte Klasse und ihre Felder abzugleichen.

User = Struct.new(:name, :admin, keyword_init: true)
case User.new(name: 'Ada', admin: true)
in User(admin: true, name:)
  puts("#{name} is an admin")
end

Sichere Fallbacks

Geben Sie immer ein else an, wenn eine Eingabe möglicherweise nicht passt. So wird eine Ausnahme in eine kontrollierte Behandlung umgewandelt.

def parse(data)
  case data
  in { id: Integer => id }
    "id #{id}"
  else
    'unrecognized'
  end
end
puts(parse({ name: 'x' }))

Alles zusammenführen

Ein realistischer Ablauf: JSON parsen, seine Struktur abgleichen, sie mit einem Guard validieren und anschließend handeln – alles in einem übersichtlichen Ausdruck.

require 'json'
event = JSON.parse('{"kind":"purchase","amount":150}', symbolize_names: true)
case event
in { kind: 'purchase', amount: Integer => amt } if amt > 100
  puts("big purchase: #{amt}")
in { kind: 'purchase', amount: }
  puts("purchase: #{amount}")
end

Kurzer Check

Welche Methode muss eine benutzerdefinierte Klasse definieren, um Hash-Pattern-Matching wie in { x:, y: } zu unterstützen?

Zusammenfassung: Praktische Anwendungsfälle

Sie haben Pattern Matching auf reale Probleme angewendet:

  • API-Antworten und Befehle weiterleiten
  • Die Struktur von Datensätzen mit Guards validieren
  • Verschachtelte Konfigurationen und Tagged Unions zerlegen
  • deconstruct / deconstruct_keys für benutzerdefinierte Objekte
  • Für sichere Fallbacks immer ein else hinzufügen

Sie haben den Ruby-Kurs zu Pattern Matching abgeschlossen.

case { type: 'circle', r: 2 }
in { type: 'circle', r: } then puts(3.14 * r * r)
end

Häufig gestellte Fragen

Ist die Lektion „Praktische Anwendungsfälle“ kostenlos?

Ja — der vollständige Text von „Praktische Anwendungsfälle“ 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 „Praktische Anwendungsfälle“?

Strukturierte Daten parsen 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 4 von 4.

Wie lange dauert die Lektion „Praktische Anwendungsfälle“?

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