Menu
Coddy logo textTech

Récapitulatif - Structures de données personnalisées

Fait partie de la section Fondamentaux du Journey GO de Coddy — leçon 101 sur 109.

challenge icon

Défi

Facile

Créons une structure de données personnalisée simple pour récapituler ce que nous avons appris sur les structs en Go.

Dans ce défi, vous allez créer une structure de données Counter de base qui peut :

  1. Suivre une valeur de comptage
  2. Incrémenter le compte
  3. Décrémenter le compte
  4. Réinitialiser le compte à zéro

Complétez le code en implémentant les méthodes manquantes pour la struct Counter.

Essayez vous-même

package main

import (
	"fmt"
)

// Counter est une structure de données de compteur simple
type Counter struct {
	value int
	name  string
}

// NewCounter crée un nouveau compteur avec un nom donné
func NewCounter(name string) Counter {
	return Counter{
		value: 0,
		name:  name,
	}
}

// Increment augmente le compteur de 1
func (c *Counter) Increment() {
	// Ajouter le code pour incrémenter la valeur du compteur
}

// Decrement diminue le compteur de 1 (mais pas en dessous de 0)
func (c *Counter) Decrement() {
	// Ajouter le code pour décrémenter la valeur du compteur
	// S'assurer que la valeur ne descend pas en dessous de 0
}

// Reset remet le compteur à 0
func (c *Counter) Reset() {
	// Ajouter le code pour remettre le compteur à 0
}

// Value retourne le compte actuel
func (c Counter) Value() int {
	// Ajouter le code pour retourner la valeur actuelle
	return 0 // Remplacer ceci
}

// String retourne une représentation sous forme de chaîne du compteur
func (c Counter) String() string {
	return fmt.Sprintf("%s: %d", c.name, c.value)
}

func main() {
	// Créer un nouveau compteur nommé "Visitors"
	visitors := NewCounter("Visitors")
	
	// Incrémenter le compteur quelques fois
	visitors.Increment()
	visitors.Increment()
	visitors.Increment()
	
	// Afficher le compte actuel
	fmt.Println(visitors)
	fmt.Println("Current value:", visitors.Value())
	
	// Décrémenter le compteur
	visitors.Decrement()
	fmt.Println(visitors)
	
	// Réinitialiser le compteur
	visitors.Reset()
	fmt.Println(visitors)
	
	// Tester que le compteur ne descend pas en dessous de zéro
	visitors.Decrement()
	fmt.Println(visitors)
}

Toutes les leçons de Fondamentaux