Menu
Coddy logo textTech

Eine Aufgabe hinzufügen

Teil des Abschnitts Logik & Ablauf der GO-Journey von Coddy — Lektion 21 von 68.

challenge icon

Aufgabe

Einfach

Aufbauend auf Ihrem Aufgabenmanagement-Fundament werden Sie nun die Kernfunktionalität implementieren, um neue Aufgaben zu Ihrem System hinzuzufügen. Diese Herausforderung konzentriert sich auf das Erstellen einer Funktion, die Ihre Aufgabenliste erweitert, indem sie neue Aufgaben an den bestehenden Slice anhängt.

Wichtiger Hinweis: Da Aufgabennamen Leerzeichen enthalten können (wie "Buy groceries"), müssen Sie bufio.Scanner verwenden, um ganze Eingabezeilen zu lesen. Die Funktion fmt.Scanln stoppt das Lesen beim ersten Leerzeichen, was Aufgabennamen mit Leerzeichen unterbrechen würde. Verwenden Sie bufio.NewScanner(os.Stdin) und rufen Sie scanner.Scan() gefolgt von scanner.Text() auf, um vollständige Zeilen zu lesen.

Sie erhalten zwei Eingaben:

  • Einen String, der die Anzahl der vorhandenen Aufgaben darstellt (z. B. "2")
  • Einen String, der Aufgabennamen enthält, die durch Kommas getrennt sind (z. B. "Buy groceries,Call dentist,Finish project")

Ihre Aufgabe ist es:

  1. Definieren Sie dieselbe Task-Struktur aus der vorherigen Herausforderung mit den Feldern Name (string) und Completed (bool)
  2. Erstellen Sie eine Funktion namens addTask, die einen Slice von Task-Strukturen und einen Aufgabennamen (string) als Parameter entgegennimmt
  3. Die Funktion addTask sollte einen neuen Slice mit der hinzugefügten Aufgabe zurückgeben (die neue Aufgabe sollte Completed auf false gesetzt haben)
  4. Verwenden Sie bufio.Scanner, um die Eingabezeilen korrekt zu lesen, um Aufgabennamen mit Leerzeichen zu verarbeiten
  5. Erstellen Sie einen initialen Slice von Aufgaben basierend auf der Anzahl der im ersten Input angegebenen vorhandenen Aufgaben:
    • Wenn die Anzahl "0" ist, beginnen Sie mit einem leeren Slice
    • Wenn die Anzahl größer als "0" ist, erstellen Sie entsprechend viele Platzhalter-Aufgaben mit Namen wie "Existing Task 1", "Existing Task 2" usw., alle als unvollständig markiert
  6. Analysieren Sie die kommagetrennten Aufgabennamen aus der zweiten Eingabe
  7. Verwenden Sie Ihre addTask-Funktion, um jede neue Aufgabe zum Slice hinzuzufügen
  8. Geben Sie jede Aufgabe im finalen Slice im Format "Task: [name], Completed: [true/false]" aus
  9. Geben Sie die Gesamtzahl der Aufgaben im Format "Total tasks: [count]" aus

Wenn Sie beispielsweise 1 vorhandene Aufgabe haben und "Buy groceries,Call dentist" hinzufügen möchten, sollte Ihre Ausgabe zuerst die vorhandene Aufgabe zeigen, gefolgt von den zwei neuen Aufgaben und schließlich die Gesamtzahl. Diese Herausforderung übt die Slice-Manipulation mit der append-Funktion und demonstriert, wie man Funktionalitäten aufbaut, die Ihre Datenstrukturen erweitern.

Probier es selbst

package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
	"strings"
)

type Task struct {
	Name      string
	Completed bool
}

// TODO: addTask-Funktion hier erstellen

func main() {
	// Scanner zum Lesen von Eingabezeilen erstellen
	scanner := bufio.NewScanner(os.Stdin)
	
	// Anzahl der vorhandenen Aufgaben lesen
	scanner.Scan()
	existingTasksStr := scanner.Text()
	
	// Aufgabennamen lesen
	scanner.Scan()
	taskNamesStr := scanner.Text()
	
	// TODO: Implementierung vervollständigen
	// 1. existingTasksStr in Ganzzahl umwandeln
	// 2. Initialen Slice mit vorhandenen Aufgaben erstellen
	// 3. taskNamesStr parsen und neue Aufgaben hinzufügen
	// 4. Alle Aufgaben und Gesamtzahl ausgeben
}

Alle Lektionen in Logik & Ablauf