Menu
Coddy logo textTech

Özet - Özel Veri Yapıları

Coddy'nin GO Journey'sinin Temeller bölümünün bir parçası — ders 101 / 109.

challenge icon

Görev

Kolay

Go'da struct'lar hakkında öğrendiklerimizi özetlemek için basit bir özel veri yapısı oluşturalım.

Bu challenge'da, şunları yapabilen temel bir Counter veri yapısı oluşturacaksınız:

  1. Bir sayım değerini takip etmek
  2. Sayımı artırmak
  3. Sayımı azaltmak
  4. Sayımı sıfırlamak

Counter struct'ı için eksik metotları uygulayarak kodu tamamlayın.

Kendin dene

package main

import (
	"fmt"
)

// Counter basit bir sayaç veri yapısıdır
type Counter struct {
	value int
	name  string
}

// NewCounter verilen isimle yeni bir sayaç oluşturur
func NewCounter(name string) Counter {
	return Counter{
		value: 0,
		name:  name,
	}
}

// Increment sayacı 1 artırır
func (c *Counter) Increment() {
	// Sayacın değerini artırmak için kod ekleyin
}

// Decrement sayacı 1 azaltır (ancak 0'ın altına düşürmez)
func (c *Counter) Decrement() {
	// Sayacın değerini azaltmak için kod ekleyin
	// Değerin 0'ın altına düşmediğinden emin olun
}

// Reset sayacı tekrar 0'a ayarlar
func (c *Counter) Reset() {
	// Sayacı 0'a sıfırlamak için kod ekleyin
}

// Value mevcut sayımı döndürür
func (c Counter) Value() int {
	// Mevcut değeri döndürmek için kod ekleyin
	return 0 // Bunu değiştirin
}

// String sayacın dize temsilini döndürür
func (c Counter) String() string {
	return fmt.Sprintf("%s: %d", c.name, c.value)
}

func main() {
	// "Visitors" adında yeni bir sayaç oluşturun
	visitors := NewCounter("Visitors")
	
	// Sayacı birkaç kez artırın
	visitors.Increment()
	visitors.Increment()
	visitors.Increment()
	
	// Mevcut sayımı yazdırın
	fmt.Println(visitors)
	fmt.Println("Current value:", visitors.Value())
	
	// Sayacı azaltın
	visitors.Decrement()
	fmt.Println(visitors)
	
	// Sayacı sıfırlayın
	visitors.Reset()
	fmt.Println(visitors)
	
	// Sayacın sıfırın altına düşmediğini test edin
	visitors.Decrement()
	fmt.Println(visitors)
}

Temeller bölümündeki tüm dersler