Tracks
/
Gleam
Gleam
/
Übungen
/
Weinkeller
Weinkeller

Weinkeller

Lernübung

Einführung

Beschriftete Argumente

Wenn eine Funktion viele Argumente entgegennimmt, kann es manchmal schwierig sein, sich die Reihenfolge zu merken, in der sie übergeben werden müssen. Um die Lesbarkeit zu verbessern, erlaubt es Gleam, Argumente mit einem Namen zu beschriften.

Um ein Argument zu beschriften, gibst du den Namen der Beschriftung vor dem Argumentnamen an, getrennt durch ein Leerzeichen.

pub fn replace(
  in string: String,
  each target: String,
  with replacement: String
) -> String {
  // ...
}

Beim Aufruf einer Funktion mit beschrifteten Argumenten kannst du die Argumente in beliebiger Reihenfolge angeben. Die folgenden Aufrufe von replace sind alle gleichwertig:

replace(in: "🍔🍔🍔", each: "🍔", with: "🍕")

replace(each: "🍔", in: "🍔🍔🍔", with: "🍕")

replace(with: "🍕", each: "🍔", in: "🍔🍔🍔")

Beschriftungen sind immer optional. Selbst wenn eine Funktion beschriftete Argumente hat, kannst du sie weiterhin ohne Beschriftungen aufrufen.

replace("🍔🍔🍔", "🍔", "🍕")

Anleitung

Du bist der Manager eines schicken Restaurants mit einem ansehnlichen Weinkeller. Viele deiner Gäste sind anspruchsvolle Weinliebhaber. Die richtige Flasche Wein für einen bestimmten Gast zu finden, ist keine leichte Aufgabe.

Als technikbegeisterter Restaurantbesitzer hast du beschlossen, die Weinauswahl zu beschleunigen, indem du eine App schreibst, mit der Gäste deine Weine nach ihren Vorlieben filtern können.

1. Alle Weine einer bestimmten Farbe finden

Eine Weinflasche wird durch einen benutzerdefinierten Typ dargestellt, und Weine werden in einer Liste gespeichert.

[
  Wine("Chardonnay", 2015, "Italy", White),
  Wine("Pinot grigio", 2017, "Germany", White),
  Wine("Pinot noir", 2016, "France", Red),
  Wine("Dornfelder", 2018, "Germany", Rose)
]

Implementiere die Funktion wines_of_color. Sie soll eine Liste von Weinen entgegennehmen und alle Weine einer bestimmten Farbe zurückgeben.

wines_of_color(
  [
    Wine("Chardonnay", 2015, "Italy", White),
    Wine("Pinot grigio", 2017, "Germany", White),
    Wine("Pinot noir", 2016, "France", Red),
    Wine("Dornfelder", 2018, "Germany", Rose)
  ],
  color: White
)
// -> [
//   Wine("Chardonnay", 2015, "Italy", White),
//   Wine("Pinot grigio", 2017, "Germany", White),
// ]

2. Alle Weinflaschen eines bestimmten Landes finden

Implementiere die Funktion wines_from_country. Sie soll eine Liste von Weinen entgegennehmen und alle Weine aus einem bestimmten Land zurückgeben.

wines_from_country(
  [
    Wine("Chardonnay", 2015, "Italy", White),
    Wine("Pinot grigio", 2017, "Germany", White),
    Wine("Pinot noir", 2016, "France", Red),
    Wine("Dornfelder", 2018, "Germany", Rose)
  ],
  country: "Germany"
)
// -> [
//   Wine("Dornfelder", 2018, "Germany", Rose)
// ]

3. Alle Weine einer bestimmten Farbe finden, die in einem bestimmten Land abgefüllt wurden

Implementiere die Funktion filter. Sie soll eine Liste von Weinen, eine Farbe und ein Land entgegennehmen und alle Weine der gegebenen Farbe zurückgeben, die im gegebenen Land abgefüllt wurden.

filter(
  [
    Wine("Chardonnay", 2015, "Italy", White),
    Wine("Pinot grigio", 2017, "Germany", White),
    Wine("Pinot noir", 2016, "France", Red),
    Wine("Dornfelder", 2018, "Germany", Rose)
  ],
  color: White
  country: "Italy"
)
// -> [
//   Wine("Chardonnay", 2015, "Italy", White),
// ]
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
Gleam Exercism

Bereit, mit Weinkeller zu starten?

Melde dich bei Exercism an, um Gleam mit 33 Konzepte122 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.