Sobes.tech
Junior

Go'da hangi temel veri yapıları vardır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go dilinde temel (ilkel) ve bileşen (kompozit) veri yapıları şunlardır:

Temel:

  • Mantıksal değerler (bool)
  • Sayısal türler:
    • Tam sayılar (int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64, uintptr)
    • Ondalıklı sayılar (float32, float64)
    • Karmaşık sayılar (complex64, complex128)
    • Byte (byte - uint8'in takma adı)
    • Rune (rune - int32'nin takma adı, Unicode karakterini temsil eder)
  • Dizgeler (string)

Bileşenler:

  • Diziler (array)
    • Sabit boyutlu.
    var arr [5]int // 5 tam sayıdan oluşan dizi
    
  • Dilimler (slice)
    • Dinamik boyutlu, dizilere dayanır.
    var s []int // başlatılmamış dilim
    s = make([]int, 5, 10) // uzunluğu 5, kapasitesi 10 olan dilim
    
  • Haritalar (map)
    • Anahtar-değer çiftleri içeren sıralı olmayan koleksiyon.
    m := make(map[string]int) // anahtarları string, değerleri int olan harita
    
  • Yapılar (struct)
    • Tiplenmiş alan koleksiyonu.
    type Person struct {
        Name string
        Age  int
    }
    
  • İşaretçiler (pointer)
    • Bellek hücresinin adresini tutar.
    var x int = 10
    var p *int = &x // p, x'e işaret eder
    
  • Fonksiyonlar (func)
    • Go dilinde fonksiyonlar birinci sınıf türlerdir.
    type MyFunc func(int) string // fonksiyon tipi
    
  • Kanallar (channel)
    • Goroutine'ler arasında senkronizasyon ve veri alışverişi için kullanılır.
    ch := make(chan int) // tamponlamayan kanal, int için
    
  • Arabirimler (interface)
    • Bir türün uygulaması gereken metodların kümesini temsil eder.
    type Reader interface {
        Read(p []byte) (n int, err error)
    }
    

Ayrıca, önemli diğer bileşen türleri arasında şunlar da vardır:

  • Bayt dilimleri ([]byte)
  • Rune dilimleri ([]rune)

Bu veri yapıları, Go'da çeşitli görevler için esneklik ve performans sağlar.