Sobes.tech
Junior

Go-da əsas məlumat strukturları hansılardır?

sobes.tech Süni İntellekt

AI-dan cavab

Go dilində aşağıdakı əsas (primitive) və birləşmiş (composite) məlumat strukturları mövcuddur:

Əsas:

  • Boolean dəyərlər (bool)
  • Rəqəmsal tiplər:
    • Tam ədədlər (int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64, uintptr)
    • Onluq ədədlər (float32, float64)
    • Kompleks ədədlər (complex64, complex128)
    • Byte (byte - uint8-in takma adı)
    • Rune (rune - int32-nin takma adı, Unicode simvolunu təmsil edir)
  • Stringlər (string)

Birləşmiş:

  • Array (array)
    • Sabit ölçülü.
    var arr [5]int // 5 tam ədəddən ibarət array
    
  • Dilimlər (slice)
    • Dinamik ölçülü, array-lərə əsaslanır.
    var s []int // inisializasiya olunmamış dilim
    s = make([]int, 5, 10) // uzunluğu 5, tutumu 10 olan dilim
    
  • Xəritələr (map)
    • Sıralanmamış açar-dəyər cütlüklərindən ibarət kolleksiya.
    m := make(map[string]int) // açarları string, dəyərləri int olan xəritə
    
  • Struct-lər (struct)
    • Tipli sahələr toplusu.
    type Person struct {
        Name string
        Age  int
    }
    
  • Göstəricilər (pointer)
    • Yaddaş hüceyrəsinin ünvanını saxlayır.
    var x int = 10
    var p *int = &x // p x-ə göstəricidir
    
  • Funksiyalar (func)
    • Go-da funksiyalar birinci dərəcəli tiplərdir.
    type MyFunc func(int) string // funksiyanın tipi
    
  • Kanallar (channel)
    • Goroutine-lər arasında sinxronizasiya və məlumat mübadiləsi üçün istifadə olunur.
    ch := make(chan int) // int üçün buffersiz kanal
    
  • İnterfeyslər (interface)
    • Bir tipin həyata keçirməli olduğu metodlar toplusunu təmsil edir.
    type Reader interface {
        Read(p []byte) (n int, err error)
    }
    

Həmçinin, digər vacib birləşmiş tiplər də mövcuddur, məsələn:

  • Bayt dilimləri ([]byte)
  • Rune dilimləri ([]rune)

Bu məlumat strukturları Go-da müxtəlif tapşırıqlar üçün elastiklik və performans təmin edir.