Özet - Özel Veri Yapıları
Coddy'nin GO Journey'sinin Temeller bölümünün bir parçası — ders 101 / 109.
Görev
KolayGo'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:
- Bir sayım değerini takip etmek
- Sayımı artırmak
- Sayımı azaltmak
- 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
4Karşılaştırma ve Mantıksal Operatörler
Karşılaştırma Operatörleri - Bölüm 1Karşılaştırma Operatörleri - Bölüm 2Mantıksal VE OperatörüMantıksal VEYA OperatörüMantıksal DEĞİL OperatörüOperatör Önceliği TemelleriÖzet - Karşılaştırma Yapma7Kontrol Akışı: Döngüler
`for` Döngüsü Nedir?`for` Döngüsü - Temel`for` Döngüsü - Sadece Koşul`break` Anahtar Kelimesi`continue` Anahtar Kelimesiİç İçe DöngülerÖzet - İşlemleri Tekrarlama10Bileşik Tipler: Diziler
Dizilere GirişDizileri TanımlamaDizilere İlk Değer AtamaDizi Elemanlarına Erişme`len` ile Dizi UzunluğuDiziler Üzerinde YinelemeÇok Boyutlu Diziler13Bileşik Tipler: Struct'lar
Özel Tipler TanımlamaStruct Örnekleri OluşturmaStruct Alanlarına ErişmeStruct Pointer'larıStruct'ları BaşlatmaGömülü Struct'larAnonim Struct'larÖzet - Özel Veri Yapıları2Değişkenler ve Temel Veri Tipleri
Değişken nedir?`:=` ile Tür ÇıkarımıTam Sayılar (int)Ondalıklı SayılarBooleanlarStringlerSıfır DeğerlerSabitlerİsimlendirme KurallarıÖzet - Değişkenler ve Türler5Temel Giriş/Çıkış
Biçimlendirilmiş ÇıktıBiçim BelirteçleriVeri Tiplerini YazdırmaTemel Kullanıcı Girdisi AlmaÖzet - Giriş ve Çıkış8Fonksiyonlar
Fonksiyonları AnlamakFonksiyon TanımlamaFonksiyonları ÇağırmaFonksiyon ParametreleriTek Bir Değer DöndürmeBirden Fazla Değer Döndürmeİsimlendirilmiş Dönüş DeğerleriFonksiyon Kapsamı TemelleriÖzet - Yeniden Kullanılabilir Kod Oluşturma3Temel Operatörler
Aritmetik OperatörlerBölme OperatörüModulo OperatörüAtama OperatörüBileşik Atama OperatörleriArtırma ve AzaltmaÖzet - Hesaplamalar6Kontrol Akışı: Koşullu İfadeler
`if` İfadesi`else` Anahtar Kelimesi`else if` Anahtar Kelimesi`if` İçinde Değişken GölgelemeDeğişkenleri Başlatma`switch` İfadesiİfadeli `switch`İfadesiz `switch``fallthrough` Anahtar KelimesiÖzet - Karar Verme