Menu
Coddy logo textTech

Resumen - Estructuras de datos personalizadas

Parte de la sección Fundamentos del Journey de GO de Coddy. Lección 101 de 109.

challenge icon

Desafío

Fácil

Creemos una estructura de datos personalizada sencilla para repasar lo que hemos aprendido sobre las estructuras en Go.

En este desafío, crearás una estructura de datos básica Counter que pueda:

  1. Realizar un seguimiento de un valor de conteo
  2. Incrementar el conteo
  3. Disminuir el conteo
  4. Restablecer el conteo a cero

Completa el código implementando los métodos que faltan para la estructura Counter.

Pruébalo tú mismo

package main

import (
	"fmt"
)

// Counter es una estructura de datos de contador simple
type Counter struct {
	value int
	name  string
}

// NewCounter crea un nuevo contador con un nombre dado
func NewCounter(name string) Counter {
	return Counter{
		value: 0,
		name:  name,
	}
}

// Increment aumenta el contador en 1
func (c *Counter) Increment() {
	// Añade código para incrementar el valor del contador
}

// Decrement disminuye el contador en 1 (pero no por debajo de 0)
func (c *Counter) Decrement() {
	// Añade código para decrementar el valor del contador
	// Asegúrate de que el valor no baje de 0
}

// Reset vuelve a poner el contador a 0
func (c *Counter) Reset() {
	// Añade código para restablecer el contador a 0
}

// Value devuelve el conteo actual
func (c Counter) Value() int {
	// Añade código para devolver el valor actual
	return 0 // Reemplaza esto
}

// String devuelve una representación en cadena del contador
func (c Counter) String() string {
	return fmt.Sprintf("%s: %d", c.name, c.value)
}

func main() {
	// Crea un nuevo contador llamado "Visitors"
	visitors := NewCounter("Visitors")
	
	// Incrementa el contador unas cuantas veces
	visitors.Increment()
	visitors.Increment()
	visitors.Increment()
	
	// Imprime el conteo actual
	fmt.Println(visitors)
	fmt.Println("Current value:", visitors.Value())
	
	// Decrementa el contador
	visitors.Decrement()
	fmt.Println(visitors)
	
	// Restablece el contador
	visitors.Reset()
	fmt.Println(visitors)
	
	// Prueba que el contador no baje de cero
	visitors.Decrement()
	fmt.Println(visitors)
}

Todas las lecciones de Fundamentos

Practica por tu cuenta: Compilador de Go online