Menu
Coddy logo textTech

Zusammenfassung – Dynamische Listen

Teil des Abschnitts Grundlagen der GO-Journey von Coddy — Lektion 83 von 109.

challenge icon

Aufgabe

Mittel

Lassen Sie uns die Arbeit mit Slices in Go üben, indem wir einen einfachen Einkaufslisten-Manager erstellen!

Ihre Aufgabe ist es, mehrere Funktionen zu implementieren, die eine Einkaufsliste manipulieren:

  1. addItems: Neue Artikel zur Einkaufsliste hinzufügen
  2. removeItem: Einen Artikel anhand des Index aus der Liste entfernen
  3. findExpensiveItems: Artikel mit Preisen über einem Schwellenwert finden
  4. calculateTotalCost: Die Gesamtkosten aller Artikel berechnen

Jeder Artikel in der Einkaufsliste wird durch einen String (Name) und einen float64 (Preis) dargestellt. Die Hauptfunktion demonstriert das Zusammenspiel all dieser Operationen.

Probier es selbst

package main

import "fmt"

// addItems fügt der Einkaufsliste neue Artikel und deren Preise hinzu
func addItems(names []string, prices []float64, newNames []string, newPrices []float64) ([]string, []float64) {
	// Ihr Code hier
	return names, prices
}

// removeItem entfernt einen Artikel am angegebenen Index
func removeItem(names []string, prices []float64, index int) ([]string, []float64) {
	// Ihr Code hier
	return names, prices
}

// findExpensiveItems gibt Artikel zurück, deren Preise über dem Schwellenwert liegen
func findExpensiveItems(names []string, prices []float64, threshold float64) []string {
	// Ihr Code hier
	return nil
}

// calculateTotalCost gibt die Summe aller Preise zurück
func calculateTotalCost(prices []float64) float64 {
	// Ihr Code hier
	return 0
}

func main() {
	// Leere Einkaufslisten initialisieren
	names := []string{}
	prices := []float64{}
	
	// Erste Artikel hinzufügen
	initialNames := []string{"Apples", "Milk", "Bread"}
	initialPrices := []float64{2.99, 3.49, 2.29}
	
	names, prices = addItems(names, prices, initialNames, initialPrices)
	
	// Die ursprüngliche Einkaufsliste ausgeben
	fmt.Println("Initial Shopping List:")
	for i := range names {
		fmt.Printf("%d. %s - $%.2f\n", i, names[i], prices[i])
	}
	
	// Gesamtkosten berechnen und ausgeben
	total := calculateTotalCost(prices)
	fmt.Printf("\nTotal Cost: $%.2f\n", total)
	
	// Teure Artikel finden und ausgeben
	priceThreshold := 3.00
	expensiveItems := findExpensiveItems(names, prices, priceThreshold)
	
	fmt.Printf("\nExpensive Items (above $%.2f):\n", priceThreshold)
	for _, item := range expensiveItems {
		fmt.Println(item)
	}
	
	// Einen neuen Artikel hinzufügen
	names, prices = addItems(names, prices, []string{"Cheese"}, []float64{4.99})
	
	// Einen Artikel entfernen
	names, prices = removeItem(names, prices, 1)
	fmt.Println("\nRemoved item at index 1")
	
	// Die endgültige Einkaufsliste ausgeben
	fmt.Println("\nFinal Shopping List:")
	for i := range names {
		fmt.Printf("%d. %s - $%.2f\n", i, names[i], prices[i])
	}
}

Alle Lektionen in Grundlagen